Beispiel #1
0
/////////////////////
// Wait until the socket contains some data or is writeable
// TODO: remove this function, don't use it!
void NetworkSocket::WaitForSocketReadOrWrite(int timeout)
{
	if(!isOpen()) {
		errors << "WaitForSocketReadOrWrite: socket closed" << endl;
		return;
	}

	NLint group = nlGroupCreate();
	nlGroupAddSocket(group, m_socket->sock);
	NLsocket s;

	if (timeout < 0)  {
		// Infinite timeout
		while (true)  {
			if (nlPollGroup(group, NL_READ_STATUS, &s, 1, 0))
				break;
			if (nlPollGroup(group, NL_WRITE_STATUS, &s, 1, 0))
				break;
			SDL_Delay(2);
		}
	} else if (timeout > 0)  {
		// Blocking, with a timeout
		Uint32 start = SDL_GetTicks();
		while (SDL_GetTicks() - start <= (Uint32)timeout)  {
			if (nlPollGroup(group, NL_READ_STATUS, &s, 1, 0))
				break;
			if (nlPollGroup(group, NL_WRITE_STATUS, &s, 1, 0))
				break;
			SDL_Delay(2);
		}
	}

	nlGroupDestroy(group);
}
Beispiel #2
0
bool NetworkSocket::isDataAvailable() {
	NLint group = nlGroupCreate();
	nlGroupAddSocket( group, m_socket->sock );
	NLsocket sock_out[2];
	int ret = nlPollGroup( group, NL_READ_STATUS, sock_out, 1, 0 );
	nlGroupDestroy(group);
	return ret > 0;
}
NLboolean loopback_Init(void)
{
    loopgroup = nlGroupCreate();

    if(loopgroup == NL_INVALID)
    {
        return NL_FALSE;
    }
    return NL_TRUE;
}
Beispiel #4
0
//////////////////////
// Wait until the socket contains some data to read
// TODO: remove this function, don't use it!
void NetworkSocket::WaitForSocketRead(int timeout)
{
	if(!isOpen()) {
		errors << "WaitForSocketRead: socket closed" << endl;
		return;
	}

	NLint group = nlGroupCreate();
	nlGroupAddSocket(group, m_socket->sock);
	NLsocket s;
	nlPollGroup(group, NL_READ_STATUS, &s, 1, (NLint)timeout);
	nlGroupDestroy(group);
}
Beispiel #5
0
		SharedData(NetworkSocket* _s) : quitSignal(false), sock(_s) {
			nlGroup = nlGroupCreate();
			addSocketToGroup();
		}