# Pre-requisites
from pip_services4_rpc.clients import DirectClient
from pip_services4_components.refer import Descriptor, References, IReferences, IReferenceable, DependencyResolver
from pip_services4_components.config import IConfigurable
# Direct client
class MyDirectClient(DirectClient):
_dependencyResolver = DependencyResolver()
def __init__(self):
self._service: MyService = None
self._dependencyResolver.put("service", Descriptor("pip-services", "service", "*", "*", "1.0"))
super(MyDirectClient, self).__init__()
def set_references(self, references: IReferences):
self._dependencyResolver.set_references(references)
self._service = self._dependencyResolver.get_one_required("service")
def my_method(self):
self._service.my_method()
# Instantiation
client = MyDirectClient()
# Controller
class MyService(IConfigurable, IReferenceable):
def __init__(self):
pass
def configure(self, config):
pass
def set_references(self, references: IReferences):
pass
def my_method(self):
print("Hello world")
# Instantiation
myService = MyService()
# Reference setting
client.set_references(References.from_tuples(
Descriptor("pip-services", "service", "service", "default", "1.0"), myService))
# Calling "my_method"
client.my_method()