コード例 #1
0
bool CProxyPacket::Set(CBuffer * pbuf)
{
	assert_or_retv(false, (m_pbuf == NULL && pbuf != NULL));

	m_pbuf = pbuf;
	return true;
}
コード例 #2
0
bool CKEventThread::AddStream( CKSocket* pSock )
{
	assert_or_retv( false, pSock );

	if( m_nSocks >= WAITOBJ_MAX )
	{
		return false;
	}

	if( m_nSocks == m_nSockAlloc )
	{
		UINT nNewAlloc = m_nSocks*2;
		CKSocket** ppSocks = new CKSocket*[ nNewAlloc ];
		memset( ppSocks, 0xDD, nNewAlloc * sizeof(CKSocket*) );
		memcpy( ppSocks, m_ppSocks, m_nSocks * sizeof(CKSocket*) );
		delete[] m_ppSocks;
		m_ppSocks = ppSocks;
		waitobj_t* pWaitObjs = new waitobj_t[ nNewAlloc ];
		memset( pWaitObjs, 0xDD, nNewAlloc * sizeof(waitobj_t) );
		memcpy( pWaitObjs, m_pWaitObjs, m_nSocks * sizeof(waitobj_t) );
		delete[] m_pWaitObjs;
		m_pWaitObjs = pWaitObjs;
		m_nSockAlloc = nNewAlloc;
	}

	m_ppSocks[m_nSocks] = pSock;
#ifdef _UNIX
	m_pWaitObjs[m_nSocks].fd = pSock->GetHandle();
	m_pWaitObjs[m_nSocks].events = 0;
	m_pWaitObjs[m_nSocks].revents = 0;
#endif
#ifdef _WIN32
	m_pWaitObjs[m_nSocks] = ::CreateEvent( NULL, FALSE, FALSE, NULL );
#endif
	m_nSocks++;
	return true;
}