コード例 #1
0
ファイル: SocketMonitor.cpp プロジェクト: Iron-Bound/quickfix
SocketMonitor::SocketMonitor( int timeout )
: m_timeout( timeout )
{
  socket_init();

  std::pair<int, int> sockets = socket_createpair();
  m_signal = sockets.first;
  m_interrupt = sockets.second;
  socket_setnonblock( m_signal );
  socket_setnonblock( m_interrupt );
  m_readSockets.insert( m_interrupt );

  m_timeval.tv_sec = 0;
  m_timeval.tv_usec = 0;
#ifndef SELECT_DECREMENTS_TIME
  m_ticks = clock();
#endif
}
コード例 #2
0
ファイル: SocketMonitor.cpp プロジェクト: Iron-Bound/quickfix
bool SocketMonitor::addRead( int s )
{
  socket_setnonblock( s );
  Sockets::iterator i = m_readSockets.find( s );
  if( i != m_readSockets.end() ) return false;

  m_readSockets.insert( s );
  return true;
}
コード例 #3
0
ファイル: SocketMonitor.cpp プロジェクト: DukeXar/quickfix
bool SocketMonitor::addConnect( int s )
{ QF_STACK_PUSH(SocketMonitor::addConnect)

  socket_setnonblock( s );
  Sockets::iterator i = m_connectSockets.find( s );
  if( i != m_connectSockets.end() ) return false;

  m_connectSockets.insert( s );
  return true;

  QF_STACK_POP
}