1 | <?php |
||
22 | class DisconnectStage extends AbstractStage |
||
23 | { |
||
24 | /** |
||
25 | * Selector |
||
26 | * |
||
27 | * @var AsyncSelector |
||
28 | */ |
||
29 | private $selector; |
||
30 | |||
31 | /** |
||
32 | * DisconnectStage constructor. |
||
33 | * |
||
34 | * @param RequestExecutorInterface $executor Request executor |
||
35 | * @param EventCaller $eventCaller Event caller |
||
36 | * @param ExecutionContext $executionContext Execution context |
||
37 | * @param AsyncSelector $selector Async selector |
||
38 | */ |
||
39 | 141 | public function __construct( |
|
48 | |||
49 | /** {@inheritdoc} */ |
||
50 | 89 | public function processStage(array $requestDescriptors) |
|
59 | |||
60 | /** |
||
61 | * Disconnect given socket |
||
62 | * |
||
63 | * @param RequestDescriptor $descriptor Operation object |
||
64 | * |
||
65 | * @return void |
||
66 | */ |
||
67 | 87 | private function disconnectSingleSocket(RequestDescriptor $descriptor) |
|
81 | |||
82 | /** |
||
83 | * Disconnects given socket descriptor |
||
84 | * |
||
85 | * @param RequestDescriptor $descriptor Socket descriptor |
||
86 | * |
||
87 | * @return void |
||
88 | */ |
||
89 | 84 | public function disconnect(RequestDescriptor $descriptor) |
|
109 | |||
110 | /** |
||
111 | * Remove given descriptor from selector |
||
112 | * |
||
113 | * @param RequestDescriptor $operation |
||
114 | * |
||
115 | * @return void |
||
116 | */ |
||
117 | 73 | private function removeOperationsFromSelector(RequestDescriptor $operation) |
|
123 | |||
124 | /** |
||
125 | * Check whether given socket should be disconnected |
||
126 | * |
||
127 | * @param RequestDescriptor $descriptor Socket descriptor |
||
128 | * |
||
129 | * @return bool |
||
130 | */ |
||
131 | 86 | private function isDisconnectRequired(RequestDescriptor $descriptor) |
|
141 | |||
142 | /** |
||
143 | * Marks forgotten socket as complete |
||
144 | * |
||
145 | * @param RequestDescriptor $descriptor The descriptor |
||
146 | * |
||
147 | * @return void |
||
148 | */ |
||
149 | 79 | private function processForgottenDescriptor(RequestDescriptor $descriptor) |
|
159 | |||
160 | /** |
||
161 | * Dispatches finalize event for socket |
||
162 | * |
||
163 | * @param RequestDescriptor $descriptor Descriptor for dispatching event |
||
164 | * |
||
165 | * @return void |
||
166 | */ |
||
167 | 81 | private function dispatchFinalizeEvent(RequestDescriptor $descriptor) |
|
176 | } |
||
177 |