diff options
Diffstat (limited to 'Swiftob/Swiftob.h')
-rw-r--r-- | Swiftob/Swiftob.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Swiftob/Swiftob.h b/Swiftob/Swiftob.h new file mode 100644 index 0000000..45061d0 --- /dev/null +++ b/Swiftob/Swiftob.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2011 Kevin Smith + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <boost/program_options/variables_map.hpp> +#include <boost/program_options/options_description.hpp> +#include <boost/shared_ptr.hpp> + +#include <string> + +#include <Swiften/Base/Platform.h> +#include <Swiften/EventLoop/SimpleEventLoop.h> +#include <Swiften/Base/boost_bsignals.h> +#include <Swiften/Client/Client.h> +#include <Swiften/Network/BoostNetworkFactories.h> + +#include "Swiftob/Commands.h" +#include "Swiftob/LuaCommands.h" + +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 handleConnected(); + void handleDisconnected(const boost::optional<Swift::ClientError>&); + 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_; + Swift::Client* client_; +}; |