예제 #1
0
IOPoll* createIOPoll(PollType poll_type)
{
    switch (poll_type)
    {
        case PollType::POLL:
            return createVPoll();
        case PollType::SELECT:
            return createSelectPoll();
        case PollType::KQUEUE:
#ifdef KUMA_OS_MAC
            return createKQueue();
#else
            return createDefaultIOPoll();
#endif
        case PollType::EPOLL:
#ifdef KUMA_OS_LINUX
            return createEPoll();
#else
            return createDefaultIOPoll();
#endif
        case PollType::IOCP:
#ifdef KUMA_OS_WIN
            return createIocpPoll();
#else
            return createDefaultIOPoll();
#endif
        default:
            return createDefaultIOPoll();
    }
}
예제 #2
0
IOPoll* createDefaultIOPoll()
{
#ifdef KUMA_OS_WIN
    return createSelectPoll();
#elif defined(KUMA_OS_LINUX)
    return createEPoll();
#elif defined(KUMA_OS_MAC)
    return createVPoll();
#else
    return createSelectPoll();
#endif
}
예제 #3
0
IOPoll* createIOPoll(PollType poll_type)
{
    switch (poll_type)
    {
        case POLL_TYPE_POLL:
            return createVPoll();
        case POLL_TYPE_SELECT:
            return createSelectPoll();
        case POLL_TYPE_EPOLL:
#ifdef KUMA_OS_LINUX
            return createEPoll();
#endif
        default:
            return createDefaultIOPoll();
    }
}