/* * Copyright (c) 2011 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; class Users; class Storage; class Swiftob { public: Swiftob(const po::variables_map& options); static po::options_description getOptionsDescription(); int exec(); ~Swiftob(); private: void init(); void handleRestartRequested(); void handleConnected(); void handleDisconnected(const boost::optional&); void handleMessageReceived(Swift::Message::ref); private: const po::variables_map options_; Swift::SimpleEventLoop eventLoop_; Swift::BoostNetworkFactories networkFactories_; Commands* commands_; LuaCommands* lua_; Storage* storage_; MUCs* mucs_; bool quitting_; Users* users_; std::string path_; Swift::Client* client_; };