示例#1
0
文件: PipeNode.cpp 项目: spolitov/lib
void PipeNode::connectDone()
{
    if(activate())
    {
        listener_(pcConnected, PacketReader());
        Connection::start();
    }
}
示例#2
0
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());
	}
}
示例#3
0
文件: PipeNode.cpp 项目: spolitov/lib
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);
    }
}
示例#4
0
文件: PipeNode.cpp 项目: spolitov/lib
void PipeNode::finish()
{
    pipe_.reset();

    listener_(nexus::pcDisconnected, nexus::PacketReader());
}