MCPcopy Create free account
hub / github.com/acl-dev/acl / add_close_callback

Method add_close_callback

lib_acl_cpp/src/stream/aio_stream.cpp:169–206  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

167}
168
169void aio_stream::add_close_callback(aio_callback* callback)
170{
171 acl_assert(callback);
172
173 // copy on write
174 if (close_callbacks_ == NULL) {
175 close_callbacks_ = NEW std::list<AIO_CALLBACK*>;
176 }
177
178 // �Ȳ�ѯ�ûص������Ѿ�����
179 std::list<AIO_CALLBACK*>::iterator it = close_callbacks_->begin();
180 for (; it != close_callbacks_->end(); ++it) {
181 if ((*it)->callback == callback) {
182 if ((*it)->enable == false) {
183 (*it)->enable = true;
184 }
185 return;
186 }
187 }
188
189 // ��һ����λ
190 it = close_callbacks_->begin();
191 for (; it != close_callbacks_->end(); ++it) {
192 if ((*it)->callback == NULL) {
193 (*it)->enable = true;
194 (*it)->callback = callback;
195 return;
196 }
197 }
198
199 // ����һ���µ�λ��
200 AIO_CALLBACK* ac = (AIO_CALLBACK*) acl_mycalloc(1, sizeof(AIO_CALLBACK));
201 ac->enable = true;
202 ac->callback = callback;
203
204 // ���ӽ��ص����������
205 close_callbacks_->push_back(ac);
206}
207
208void aio_stream::add_timeout_callback(aio_callback* callback)
209{

Callers 15

handle_clientMethod · 0.80
open_writeMethod · 0.80
accept_callbackMethod · 0.80
connect_serverMethod · 0.80
accept_callbackMethod · 0.80
connect_serverFunction · 0.80
accept_callbackMethod · 0.80
accept_callbackMethod · 0.80
startMethod · 0.80
startMethod · 0.80
connect_serverFunction · 0.80
handle_clientMethod · 0.80

Calls 3

beginMethod · 0.80
endMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected