void TCPReceiveBytes::onNewConnection(core::SharedPointer<core::io::tcp::TCPConnection> connection) { if (connection.isValid()) { cout << "Handle a new connection." << endl; // Set this class as StringListener to receive // data from this connection. connection->setStringListener(this); // Set this class also as ConnectionListener to // handle errors originating from this connection. connection->setConnectionListener(this); // Start receiving data from this connection. connection->start(); // We keep this connection open only for one // second before we close it. const uint32_t ONE_SECOND = 1000 * 1000; core::base::Thread::usleepFor(ONE_SECOND); // Stop this connection. connection->stop(); // Unregister the listeners. connection->setStringListener(NULL); connection->setConnectionListener(NULL); } }
void SuperComponent::onNewModule(core::SharedPointer<core::dmcp::connection::ModuleConnection> mc) { if (mc.isValid()) { mc->waitForModuleDescription(); CLOG1 << "[odsupercomponent]: New connected module " << mc->getModuleDescriptor().toString() << endl; ConnectedModule* module = new ConnectedModule(mc, coredata::dmcp::ModuleStateMessage::NOT_RUNNING); mc->setModuleStateListener(this); if (m_modules.hasModule(mc->getModuleDescriptor())) { clog << "[odsupercomponent]: WARNING!!! MODULE " << mc->getModuleDescriptor().toString() << " AREADY CONNECTED: Consider using --id to differentiate modules!" << endl; } else { m_modules.addModule(mc->getModuleDescriptor(), module); } } }