SMSNetworkPlugin(Config *config, Swift::SimpleEventLoop *loop, StorageBackend *storagebackend, const std::string &host, int port) : NetworkPlugin() { this->config = config; this->storageBackend = storagebackend; m_factories = new Swift::BoostNetworkFactories(loop); m_conn = m_factories->getConnectionFactory()->createConnection(); m_conn->onDataRead.connect(boost::bind(&SMSNetworkPlugin::_handleDataRead, this, _1)); m_conn->connect(Swift::HostAddressPort(SWIFT_HOSTADDRESS(host), port)); // m_conn->onConnectFinished.connect(boost::bind(&FrotzNetworkPlugin::_handleConnected, this, _1)); // m_conn->onDisconnected.connect(boost::bind(&FrotzNetworkPlugin::handleDisconnected, this)); LOG4CXX_INFO(logger, "Starting the plugin."); m_timer = m_factories->getTimerFactory()->createTimer(5000); m_timer->onTick.connect(boost::bind(&SMSNetworkPlugin::handleSMSDir, this)); m_timer->start(); // We're reusing our database model here. Buddies of user with JID INTERNAL_USER are there // to match received GSM messages from number N with the XMPP users who sent message to number N. // BuddyName = GSM number // Alias = XMPP user JID to which the messages from this number is sent to. // TODO: This should be per Modem!!! UserInfo info; info.jid = INTERNAL_USER; info.password = ""; storageBackend->setUser(info); storageBackend->getUser(INTERNAL_USER, info); m_internalUser = info.id; }
FrotzNetworkPlugin(Config *config, Swift::SimpleEventLoop *loop, const std::string &host, int port) : NetworkPlugin() { this->config = config; m_factories = new Swift::BoostNetworkFactories(loop); m_conn = m_factories->getConnectionFactory()->createConnection(); m_conn->onDataRead.connect(boost::bind(&FrotzNetworkPlugin::_handleDataRead, this, _1)); m_conn->connect(Swift::HostAddressPort(Swift::HostAddress(host), port)); // m_conn->onConnectFinished.connect(boost::bind(&FrotzNetworkPlugin::_handleConnected, this, _1)); // m_conn->onDisconnected.connect(boost::bind(&FrotzNetworkPlugin::handleDisconnected, this)); }