Esempio n. 1
0
void CLIServer::process() {
    CLIClientList *scan;
    for (scan = clients; scan; scan = scan->next) {
        uint8_t ctest = scan->client->testConnected();

        if (ctest == CLIClient::CONNECTED) {
            if (_onConnect != NULL) {
                _onConnect(scan->client, 0, NULL);
                scan->client->printPrompt();
            }
        } else if (ctest == CLIClient::DISCONNECTED) {
            if (_onDisconnect != NULL) {
                _onDisconnect(scan->client, 0, NULL);
            }
        }

        int rl = scan->client->readline();
        if (rl > 0) {
            int rv = scan->client->parseCommand();
            if (rv == -1) {
                scan->client->println("Unknown command");
            } else {
                if (rv > 0) {
                    scan->client->print("Error ");
                    scan->client->println(rv);
                }
            }
            scan->client->printPrompt();
        } else if (rl == 0) {
            scan->client->printPrompt();
        }
    }
}
Esempio n. 2
0
void Connector::connected( void ) {
	if (!_isConnected) {
		if (!_onConnect.empty()) {
			printf( "[Connector (%p)] Connected\n", this );		
			_onConnect();
		}
		_isConnected = true;

		//	Add Keep Alive handler
		_keepAliveHandler = new KeepAliveHandler();
		_keepAliveHandler->onKeepAliveEvent( boost::bind(&Connector::onKeepAliveEvent, this, _1) );
		addHandler( connector::messages::keepAlive, _keepAliveHandler );

		if (_isServer) {
			printf( "[Connector (%p)] Launching keep alive timer: interval=%d, retry=%d\n",
				this, _keepAliveInterval, _maxKeepAliveRetry );
			
			//	Launch keep alive timer ....
			_keepAlive=0;
			launchTimer( _keepAliveTimer, _keepAliveInterval, &Connector::onKeepAliveIntervalExpired );
		}
	}
}