void PipeNode::connectDone() { if(activate()) { listener_(pcConnected, PacketReader()); Connection::start(); } }
void acceptor::on_accepted(std::error_code ec) { if (!ec) { listener_(this); request_accept(); } else { delete socket_; socket_ = nullptr; error("%s> [ec: %s]", __FUNCTION__, ec.message().c_str()); } }
void PipeNode::processPackets(PacketReader & reader) { while(reader.left() >= 3) { reader.mark(); PacketCode code = reader.read<PacketCode>(); boost::uint32_t len = reader.read<boost::uint16_t>(); if(len > 0x7fff) { if(reader.left() >= 2) len = (reader.read<uint16_t>() << 15) | (len & 0x7fff); } if(len > reader.left()) { reader.revert(); break; } listener_(code, reader.subreader(0, len)); reader.skip(len); } }
void PipeNode::finish() { pipe_.reset(); listener_(nexus::pcDisconnected, nexus::PacketReader()); }