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

Method handleRead

recipes/Python/577662_ASIO/recipe-577662.py:232–264  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

230 self.__writeAllCallback = None
231
232 def handleRead(self):
233 if (self.__acceptCallback):
234 try:
235 (newSocket, addr) = self.__socket.accept()
236 asyncSocket = AsyncSocket(self.__asyncIOService, newSocket)
237 self.__asyncIOService.unregisterAsyncSocketForRead(self)
238 self.__asyncIOService.invokeLater(
239 functools.partial(self.__acceptCallback, sock = asyncSocket, err = 0))
240 self.__acceptCallback = None
241 except socket.error as e:
242 if e.args[0] in (errno.EAGAIN, errno.EWOULDBLOCK):
243 pass
244 else:
245 self.__asyncIOService.unregisterAsyncSocketForRead(self)
246 self.__asyncIOService.invokeLater(
247 functools.partial(self.__acceptCallback, sock = None, err = e.args[0]))
248 self.__acceptCallback = None
249
250 if (self.__readCallback):
251 try:
252 data = self.__socket.recv(self.__maxReadBytes)
253 self.__asyncIOService.unregisterAsyncSocketForRead(self)
254 self.__asyncIOService.invokeLater(
255 functools.partial(self.__readCallback, data = data, err = 0))
256 self.__readCallback = None
257 except socket.error as e:
258 if e.args[0] in (errno.EAGAIN, errno.EWOULDBLOCK):
259 pass
260 else:
261 self.__asyncIOService.unregisterAsyncSocketForRead(self)
262 self.__asyncIOService.invokeLater(
263 functools.partial(self.__readCallback, data = None, err = e.args[0]))
264 self.__readCallback = None
265
266 def handleWrite(self):
267 if (self.__connectCallback):

Callers 1

handleEventForFDMethod · 0.80

Calls 5

AsyncSocketClass · 0.85
invokeLaterMethod · 0.80
acceptMethod · 0.45
recvMethod · 0.45

Tested by

no test coverage detected