void set(reactor_op_queue<socket_type>& operations, op_queue<operation>&) { reactor_op_queue<socket_type>::iterator i = operations.begin(); while (i != operations.end()) { reactor_op_queue<socket_type>::iterator op_iter = i++; reserve(fd_set_->fd_count + 1); fd_set_->fd_array[fd_set_->fd_count++] = op_iter->first; } }
void perform(reactor_op_queue<socket_type>& operations, op_queue<operation>& ops) const { reactor_op_queue<socket_type>::iterator i = operations.begin(); while (i != operations.end()) { reactor_op_queue<socket_type>::iterator op_iter = i++; if (is_set(op_iter->first)) operations.perform_operations(op_iter, ops); } }
void set(reactor_op_queue<socket_type>& operations, op_queue<operation>& ops) { reactor_op_queue<socket_type>::iterator i = operations.begin(); while (i != operations.end()) { reactor_op_queue<socket_type>::iterator op_iter = i++; if (!set(op_iter->first)) { boost::system::error_code ec(error::fd_set_failure); operations.cancel_operations(op_iter, ops, ec); } } }
void perform(reactor_op_queue<socket_type>& operations, op_queue<operation>& ops) const { for (u_int i = 0; i < fd_set_->fd_count; ++i) operations.perform_operations(fd_set_->fd_array[i], ops); }