diff --git a/backends/template/main.cpp b/backends/template/main.cpp index 06d2d1ba126a105d96d96c1ef52418be7cd9ba19..2210ad42a0bc378a0765e39d4671c89e74505078 100644 --- a/backends/template/main.cpp +++ b/backends/template/main.cpp @@ -1,3 +1,5 @@ +#include "plugin.h" + // Transport includes #include "transport/config.h" #include "transport/networkplugin.h" @@ -19,71 +21,6 @@ using namespace boost::filesystem; using namespace boost::program_options; using namespace Transport; -DEFINE_LOGGER(logger, "Backend Template"); - -// eventloop -Swift::SimpleEventLoop *loop_; - -// Plugin -class TemplatePlugin; -TemplatePlugin * np = NULL; - -class TemplatePlugin : public NetworkPlugin { - public: - Swift::BoostNetworkFactories *m_factories; - Swift::BoostIOServiceThread m_boostIOServiceThread; - boost::shared_ptr m_conn; - - TemplatePlugin(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(&TemplatePlugin::_handleDataRead, this, _1)); - m_conn->connect(Swift::HostAddressPort(Swift::HostAddress(host), port)); - - LOG4CXX_INFO(logger, "Starting the plugin."); - } - - // NetworkPlugin uses this method to send the data to networkplugin server - void sendData(const std::string &string) { - m_conn->write(Swift::createSafeByteArray(string)); - } - - // This method has to call handleDataRead with all received data from network plugin server - void _handleDataRead(boost::shared_ptr data) { - std::string d(data->begin(), data->end()); - handleDataRead(d); - } - - void handleLoginRequest(const std::string &user, const std::string &legacyName, const std::string &password) { - handleConnected(user); - LOG4CXX_INFO(logger, user << ": Added buddy - Echo."); - handleBuddyChanged(user, "echo", "Echo", std::vector(), pbnetwork::STATUS_ONLINE); - } - - void handleLogoutRequest(const std::string &user, const std::string &legacyName) { - } - - void handleMessageSendRequest(const std::string &user, const std::string &legacyName, const std::string &message, const std::string &xhtml = "") { - LOG4CXX_INFO(logger, "Sending message from " << user << " to " << legacyName << "."); - if (legacyName == "echo") { - handleMessage(user, legacyName, message); - } - } - - void handleBuddyUpdatedRequest(const std::string &user, const std::string &buddyName, const std::string &alias, const std::vector &groups) { - LOG4CXX_INFO(logger, user << ": Added buddy " << buddyName << "."); - handleBuddyChanged(user, buddyName, alias, groups, pbnetwork::STATUS_ONLINE); - } - - void handleBuddyRemovedRequest(const std::string &user, const std::string &buddyName, const std::vector &groups) { - - } - - private: - Config *config; -}; - #ifndef _WIN32 static void spectrum_sigchld_handler(int sig) @@ -124,9 +61,8 @@ int main (int argc, char* argv[]) { Logging::initBackendLogging(cfg); Swift::SimpleEventLoop eventLoop; - loop_ = &eventLoop; - np = new TemplatePlugin(cfg, &eventLoop, host, port); - loop_->run(); + Plugin p(cfg, &eventLoop, host, port); + eventLoop.run(); return 0; }