MCPcopy Create free account
hub / github.com/apache/qpid-proton / Selectable

Class Selectable

python/proton/_selectable.py:31–108  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29
30
31class Selectable(object):
32
33 def __init__(
34 self,
35 delegate: Optional[Union['EventInjector', 'socket']],
36 reactor: 'Container',
37 ) -> None:
38 self._delegate = delegate
39 self.reading = False
40 self.writing = False
41 self._deadline = 0
42 self._terminal = False
43 self._released = False
44 self._terminated = False
45 self._reactor = reactor
46 self.push_event(self, Event.SELECTABLE_INIT)
47
48 def close(self) -> None:
49 if self._delegate and not self._released:
50 self._delegate.close()
51
52 def fileno(self) -> int:
53 if self._delegate:
54 return self._delegate.fileno()
55 else:
56 return PN_INVALID_SOCKET
57
58 def __getattr__(self, name: str) -> Any:
59 return getattr(self._delegate, name)
60
61 @property
62 def deadline(self) -> Optional[float]:
63 tstamp = self._deadline
64 if tstamp:
65 return tstamp
66 else:
67 return None
68
69 @deadline.setter
70 def deadline(self, deadline: Optional[float]) -> None:
71 if not deadline:
72 self._deadline = 0
73 else:
74 self._deadline = deadline
75
76 def push_event(
77 self,
78 context: 'Selectable',
79 etype: 'EventType',
80 ) -> None:
81 self._reactor.push_event(context, etype)
82
83 def update(self) -> None:
84 if not self._terminated:
85 if self._terminal:
86 self._terminated = True
87 self.push_event(self, Event.SELECTABLE_FINAL)
88 else:

Callers 1

selectableMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected