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(); } } }
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 ); } } }