Beispiel #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();
    }
}
Beispiel #2
0
void startServer(int port,int (*fnPtr)(int, char*, int)) {
    struct epoll_event *events;
    int socketFD;
    int epollFD;
    socketFD = validateSocket(port);
    bindandListenSocket(socketFD);
    epollFD = createEPoll();
    setEPollSocket(epollFD, socketFD, &events);
    eventLoop(socketFD, epollFD, events, fnPtr);
    close(socketFD);
}
Beispiel #3
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
}
Beispiel #4
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();
    }
}
Beispiel #5
0
IOPoll* createDefaultIOPoll()
{
#ifdef KUMA_OS_WIN
    if (connect_ex && accept_ex) {
        return createIocpPoll();
    }
    return createSelectPoll();
#elif defined(KUMA_OS_LINUX)
    return createEPoll();
#elif defined(KUMA_OS_MAC)
    return createKQueue();
    //return createVPoll();
#else
    return createSelectPoll();
#endif
}