diff options
author | Kevin Smith <git@kismith.co.uk> | 2011-02-27 22:45:32 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2011-03-06 20:25:01 (GMT) |
commit | 27d21b371f24272466a2d6a5bf2e2b717ee2d9fc (patch) | |
tree | 5f53281711d4f467933e4b3315241e4eee58a64c /Swiftob/Swiftob.h | |
parent | d9c9df3b4ae5432552417fc4db74d62ab34f066d (diff) | |
download | swift-contrib-27d21b371f24272466a2d6a5bf2e2b717ee2d9fc.zip swift-contrib-27d21b371f24272466a2d6a5bf2e2b717ee2d9fc.tar.bz2 |
A start on Swiftob, a Swiften-based chatbot.
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_; +}; |