summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Controllers/MainController.h')
-rw-r--r--Swiften/Controllers/MainController.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/Swiften/Controllers/MainController.h b/Swiften/Controllers/MainController.h
new file mode 100644
index 0000000..e09d4fa
--- /dev/null
+++ b/Swiften/Controllers/MainController.h
@@ -0,0 +1,85 @@
+#ifndef SWIFTEN_MainController_H
+#define SWIFTEN_MainController_H
+
+
+#include "Swiften/Base/String.h"
+#include "Swiften/Client/ClientError.h"
+#include "Swiften/JID/JID.h"
+#include "Swiften/Elements/DiscoInfo.h"
+#include "Swiften/Elements/Error.h"
+#include "Swiften/Elements/Presence.h"
+#include "Swiften/Elements/Message.h"
+#include "Swiften/Settings/SettingsProvider.h"
+#include "Swiften/Elements/CapsInfo.h"
+
+
+#include <boost/signals.hpp>
+#include <boost/shared_ptr.hpp>
+
+#include <vector>
+
+namespace Swift {
+ class Application;
+ class Client;
+ class ChatWindowFactory;
+ class ChatController;
+ class EventController;
+ class MainWindowFactory;
+ class MainWindow;
+ class NickResolver;
+ class RosterController;
+ class XMPPRosterController;
+ class DiscoInfoResponder;
+ class LoginWindow;
+ class EventLoop;
+ class SoftwareVersionResponder;
+ class LoginWindowFactory;
+ class TreeWidgetFactory;
+ class MUCController;
+ class PresenceOracle;
+
+ class MainController {
+ public:
+ MainController(ChatWindowFactory* chatWindowFactory, MainWindowFactory *mainWindowFactory, LoginWindowFactory *loginWindowFactory, TreeWidgetFactory* treeWidgetFactory, SettingsProvider *settings, Application* application);
+ ~MainController();
+
+
+ private:
+ void handleConnected();
+ void handleLoginRequest(const String& username, const String& password, const String& certificateFile, bool remember);
+ void handleChatRequest(const String& contact);
+ void handleJoinMUCRequest(const JID& muc, const String& nick);
+ void handleIncomingPresence(boost::shared_ptr<Presence> presence);
+ void handleChatControllerJIDChanged(const JID& from, const JID& to);
+ void handleIncomingMessage(boost::shared_ptr<Message> message);
+ void handleChangeStatusRequest(StatusShow::Type show, const String &statusText);
+ void handleError(const ClientError& error);
+ void handleServerDiscoInfoResponse(boost::shared_ptr<DiscoInfo>, const boost::optional<Error>&);
+ void handleEventQueueLengthChange(int count);
+ ChatController* getChatController(const JID &contact);
+ void logout();
+
+ Client* client_;
+ ChatWindowFactory* chatWindowFactory_;
+ MainWindowFactory* mainWindowFactory_;
+ LoginWindowFactory* loginWindowFactory_;
+ TreeWidgetFactory* treeWidgetFactory_;
+ SettingsProvider *settings_;
+ Application* application_;
+ ChatController* chatController_;
+ XMPPRosterController* xmppRosterController_;
+ RosterController* rosterController_;
+ EventController* eventController_;
+ LoginWindow* loginWindow_;
+ SoftwareVersionResponder* clientVersionResponder_;
+ NickResolver* nickResolver_;
+ DiscoInfoResponder* discoResponder_;
+ boost::shared_ptr<CapsInfo> capsInfo_;
+ std::map<JID, MUCController*> mucControllers_;
+ std::map<JID, ChatController*> chatControllers_;
+ boost::shared_ptr<DiscoInfo> serverDiscoInfo_;
+ PresenceOracle* presenceOracle_;
+ };
+}
+#endif
+