MCPcopy Create free account
hub / github.com/EmbeddedRPC/erpc / ClientManager

Class ClientManager

erpc_python/erpc/client.py:15–78  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13
14
15class ClientManager(object):
16 def __init__(self, transport=None, codecClass=None):
17 self._transport = transport
18 self._arbitrator = None
19 self._codecClass = codecClass
20 self._sequence = 0
21
22 @property
23 def transport(self):
24 return self._transport
25
26 @transport.setter
27 def transport(self, value):
28 self._transport = value
29
30 @property
31 def arbitrator(self):
32 return self._arbitrator
33
34 @arbitrator.setter
35 def arbitrator(self, arb):
36 self._arbitrator = arb
37
38 @property
39 def codec_class(self):
40 return self._codecClass
41
42 @codec_class.setter
43 def codec_class(self, value):
44 self._codecClass = value
45
46 @property
47 def sequence(self):
48 self._sequence += 1
49 return self._sequence
50
51 def create_request(self, isOneway=False):
52 msg = bytearray()
53 codec = self.codec_class()
54 codec.buffer = msg
55 return RequestContext(self.sequence, msg, codec, isOneway)
56
57 def perform_request(self, request):
58 # Arbitrate requests.
59 token = None
60 if self._arbitrator is not None and not request.is_oneway:
61 token = self._arbitrator.prepare_client_receive(request)
62
63 # Send serialized request to server.
64 self.transport.send(request.codec.buffer)
65
66 if not request.is_oneway:
67 if token is not None:
68 msg = self._arbitrator.client_receive(token)
69 else:
70 msg = self.transport.receive()
71 request.codec.buffer = msg
72

Callers 4

client_managerFunction · 0.90
clientFunction · 0.90
server_processFunction · 0.90
mainFunction · 0.90

Calls

no outgoing calls

Tested by 3

client_managerFunction · 0.72
clientFunction · 0.72
server_processFunction · 0.72