MCPcopy Create free account
hub / github.com/ActiveState/code / asyncRead

Method asyncRead

recipes/Python/577662_ASIO/recipe-577662.py:123–144  ·  view source on GitHub ↗
(self, maxBytes, callback)

Source from the content-addressed store, hash-verified

121 functools.partial(callback, sock = None, err = e.args[0]))
122
123 def asyncRead(self, maxBytes, callback):
124 if (self.__acceptCallback):
125 raise AsyncException('Accept already in progress')
126 if (self.__connectCallback):
127 raise AsyncException('Connect already in progress')
128 if (self.__readCallback):
129 raise AsyncException('Read already in progress')
130 if (self.__closed):
131 raise AsyncException('AsyncSocket closed')
132
133 self.__maxReadBytes = maxBytes
134 try:
135 data = self.__socket.recv(self.__maxReadBytes)
136 self.__asyncIOService.invokeLater(
137 functools.partial(callback, data = data, err = 0))
138 except socket.error as e:
139 if e.args[0] in (errno.EAGAIN, errno.EWOULDBLOCK):
140 self.__readCallback = callback
141 self.__asyncIOService.registerAsyncSocketForRead(self)
142 else:
143 self.__asyncIOService.invokeLater(
144 functools.partial(callback, data = data, err = e.args[0]))
145
146 def asyncWriteAll(self, data, callback):
147 if (self.__acceptCallback):

Callers 3

__connectCallbackMethod · 0.80

Calls 4

AsyncExceptionClass · 0.85
invokeLaterMethod · 0.80
recvMethod · 0.45

Tested by

no test coverage detected