MCPcopy Index your code
hub / github.com/RustPython/RustPython / Server

Class Server

Lib/asyncio/base_events.py:275–414  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

273
274
275class Server(events.AbstractServer):
276
277 def __init__(self, loop, sockets, protocol_factory, ssl_context, backlog,
278 ssl_handshake_timeout, ssl_shutdown_timeout=None):
279 self._loop = loop
280 self._sockets = sockets
281 # Weak references so we don't break Transport's ability to
282 # detect abandoned transports
283 self._clients = weakref.WeakSet()
284 self._waiters = []
285 self._protocol_factory = protocol_factory
286 self._backlog = backlog
287 self._ssl_context = ssl_context
288 self._ssl_handshake_timeout = ssl_handshake_timeout
289 self._ssl_shutdown_timeout = ssl_shutdown_timeout
290 self._serving = False
291 self._serving_forever_fut = None
292
293 def __repr__(self):
294 return f'<{self.__class__.__name__} sockets={self.sockets!r}>'
295
296 def _attach(self, transport):
297 assert self._sockets is not None
298 self._clients.add(transport)
299
300 def _detach(self, transport):
301 self._clients.discard(transport)
302 if len(self._clients) == 0 and self._sockets is None:
303 self._wakeup()
304
305 def _wakeup(self):
306 waiters = self._waiters
307 self._waiters = None
308 for waiter in waiters:
309 if not waiter.done():
310 waiter.set_result(None)
311
312 def _start_serving(self):
313 if self._serving:
314 return
315 self._serving = True
316 for sock in self._sockets:
317 sock.listen(self._backlog)
318 self._loop._start_serving(
319 self._protocol_factory, sock, self._ssl_context,
320 self, self._backlog, self._ssl_handshake_timeout,
321 self._ssl_shutdown_timeout)
322
323 def get_loop(self):
324 return self._loop
325
326 def is_serving(self):
327 return self._serving
328
329 @property
330 def sockets(self):
331 if self._sockets is None:
332 return ()

Callers 1

create_serverMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected