コード例 #1
0
ファイル: SocketImpl.cpp プロジェクト: HANDS-FREE/PIL
void SocketImpl::setOption(int level, int option, const pi::Timespan& value)
{
    struct timeval tv;
    tv.tv_sec  = (long) value.totalSeconds();
    tv.tv_usec = (long) value.useconds();

    setRawOption(level, option, &tv, sizeof(tv));
}
コード例 #2
0
ファイル: SocketImpl.cpp プロジェクト: HANDS-FREE/PIL
void SocketImpl::getOption(int level, int option, pi::Timespan& value)
{
    struct timeval tv;
    pil_socklen_t len = sizeof(tv);
    getRawOption(level, option, &tv, len);
    value.assign(tv.tv_sec, tv.tv_usec);
}
コード例 #3
0
ファイル: SocketImpl.cpp プロジェクト: HANDS-FREE/PIL
void SocketImpl::setSendTimeout(const pi::Timespan& timeout)
{
#if defined(_WIN32) && !defined(PIL_BROKEN_TIMEOUTS)
    int value = (int) timeout.totalMilliseconds();
    setOption(SOL_SOCKET, SO_SNDTIMEO, value);
#elif defined(PIL_BROKEN_TIMEOUTS)
    _sndTimeout = timeout;
#else
    setOption(SOL_SOCKET, SO_SNDTIMEO, timeout);
#endif
}
コード例 #4
0
ファイル: SocketImpl.cpp プロジェクト: HANDS-FREE/PIL
void SocketImpl::setReceiveTimeout(const pi::Timespan& timeout)
{
#ifndef PIL_BROKEN_TIMEOUTS
#if defined(_WIN32)
    int value = (int) timeout.totalMilliseconds();
    setOption(SOL_SOCKET, SO_RCVTIMEO, value);
#else
    setOption(SOL_SOCKET, SO_RCVTIMEO, timeout);
#endif
#else
    _recvTimeout = timeout;
#endif
}