Example #1
0
int Connections::Create(Network* pNetwork)
{
    FUNCTION_BEGIN();


    if (IsStatus(CONNSTATUS_CREATE))
    {
        Logger::Log("true == IsStatus( STATUS_CREATE )\n");
        return 1;
    }


    if (NULL == pNetwork)
    {
        Logger::Log("NULL == pNetwork\n");
        return 2;
    }


    if (NULL != _NetworkRef)
    {
        Logger::Log("NULL != _NetworkRef, _NetworkRef = %016x\n", _NetworkRef);
        return 3;
    }


    if (false == _recvBuffer.Create(GetMaxRecvPacketCount(), GetMaxRecvPacketSize()))
    {
        return 4;
    }


    if (false == _sendBuffer.Create(GetMaxSendPacketCount(), GetMaxRecvPacketSize()))
    {
        return 5;
    }


    int rc = _socket.Create();
    if (0 != rc)
    {
        return rc;
    }


    rc = _socket.SetKeepAlive(CONNECTION_KEEP_ALIVE_TIME, CONNECTION_KEEP_ALIVE_INTERVAL);
    if (0 != rc)
    {
        return rc;
    }


    rc = _socket.SetLinger(true, 0);
    if (0 != rc)
    {
        return rc;
    }

    _PacketEncoder = GetPacketEncoder();

    _NetworkRef = pNetwork;


    SetStatus(CONNSTATUS_CREATE);

    return 0;
}
Example #2
0
//-----------------------------------------------------------------------------------
//		Purpose	:
//		Return	:
//-----------------------------------------------------------------------------------
// Called by Acceptor TH, Connector TH
//-----------------------------------------------------------------------------------
int CNtlConnection::Create(CNtlNetwork * pNetwork)
{
	FUNCTION_BEGIN();


	if( IsStatus( STATUS_CREATE ) )
	{
		NTL_LOG_ASSERT("true == IsStatus( STATUS_CREATE )");
		return NTL_ERR_NET_CONNECTION_STATUS_WRONG;
	}


	if( NULL == pNetwork )
	{
		NTL_LOG_ASSERT("NULL == pNetwork");
		return NTL_ERR_SYS_INPUT_PARAMETER_WRONG;
	}


	if( NULL != m_pNetworkRef )
	{
		NTL_LOG_ASSERT("NULL != m_pNetworkRef, m_pNetworkRef = %016x", m_pNetworkRef);
		return NTL_ERR_SYS_OBJECT_ALREADY_CREATED;
	}


	if( false == m_recvBuffer.Create( GetMaxRecvPacketCount(), GetMaxRecvPacketSize() ) )
	{
		return NTL_ERR_SYS_MEMORY_ALLOC_FAIL;
	}


	if( false == m_sendBuffer.Create( GetMaxSendPacketCount(), GetMaxRecvPacketSize() ) )
	{
		return NTL_ERR_SYS_MEMORY_ALLOC_FAIL;
	}


	int rc = m_socket.Create( CNtlSocket::eSOCKET_TCP );
	if( NTL_SUCCESS != rc )
	{
		return rc;
	}


	rc = m_socket.SetKeepAlive( CONNECTION_KEEP_ALIVE_TIME, CONNECTION_KEEP_ALIVE_INTERVAL );
	if( NTL_SUCCESS != rc )
	{
		return rc;
	}


	rc = m_socket.SetLinger( true, 0 );
	if( NTL_SUCCESS != rc )
	{
		return rc;
	}

#if __SGPRO_BOTSYSTEM_SENDANDRECVTESTCODE__
	m_pPacketEncoder = NULL;
#else
	m_pPacketEncoder = GetPacketEncoder();
#endif


	m_pNetworkRef = pNetwork;


	SetStatus( STATUS_CREATE );

	return NTL_SUCCESS;
}