Пример #1
0
    void Listener<SocketType>::BeginAccept()
    {
        NetworkThread<SocketType> *worker = SelectWorker();
        SocketType *socket = worker->CreateSocket();

        m_acceptor.async_accept(socket->GetAsioSocket(), [this,worker,socket](const boost::system::error_code &ec) { this->OnAccept(worker, socket, ec); });
    }
Пример #2
0
int main(int argc, char **argv) {
    int opt;
    CalcServer::worker_t worker;
    while ((opt = getopt(argc, argv, "smnxea")) != -1)
    {
        switch (opt)
        {
        case 's':
            worker = SingleWorker();
            break;
        case 'm':
            worker = MultithreadWorker();
            break;
        case 'n':
            worker = NonblockWorker();
            break;
        case 'x':
            worker = SelectWorker();
            break;
        case 'e':
            worker = EPollWorker();
            break;
        case 'a':
            worker = AIOWorker();
            break;
        default:
            return -1;
        }
    }

    if (!worker) {
        worker = SingleWorker();
    }

    return CalcServer(worker).run();
}