summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/Controllers/AdHocManager.h')
-rw-r--r--Swift/Controllers/AdHocManager.h63
1 files changed, 37 insertions, 26 deletions
diff --git a/Swift/Controllers/AdHocManager.h b/Swift/Controllers/AdHocManager.h
index 47b03cd..0786370 100644
--- a/Swift/Controllers/AdHocManager.h
+++ b/Swift/Controllers/AdHocManager.h
@@ -1,40 +1,51 @@
/*
- * Copyright (c) 2010-2011 Kevin Smith
- * Licensed under the GNU General Public License v3.
- * See Documentation/Licenses/GPLv3.txt for more information.
+ * Copyright (c) 2010-2016 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
*/
#pragma once
-#include <boost/shared_ptr.hpp>
#include <vector>
-#include <Swiften/Base/boost_bsignals.h>
-#include <Swiften/JID/JID.h>
+#include <boost/signals2.hpp>
+
+#include <Swiften/Disco/GetDiscoItemsRequest.h>
#include <Swiften/Elements/DiscoInfo.h>
#include <Swiften/Elements/DiscoItems.h>
#include <Swiften/Elements/ErrorPayload.h>
-#include <Swiften/Disco/GetDiscoItemsRequest.h>
+#include <Swiften/JID/JID.h>
+
+#include <Swift/Controllers/AdHocController.h>
#include <Swift/Controllers/UIEvents/UIEvent.h>
namespace Swift {
- class IQRouter;
- class MainWindow;
- class UIEventStream;
- class AdHocCommandWindowFactory;
- class AdHocManager {
- public:
- AdHocManager(const JID& jid, AdHocCommandWindowFactory* factory, IQRouter* iqRouter, UIEventStream* uiEventStream, MainWindow* mainWindow);
- ~AdHocManager();
- void setServerDiscoInfo(boost::shared_ptr<DiscoInfo> info);
- private:
- void handleUIEvent(boost::shared_ptr<UIEvent> event);
- void handleServerDiscoItemsResponse(boost::shared_ptr<DiscoItems>, ErrorPayload::ref error);
- JID jid_;
- IQRouter* iqRouter_;
- UIEventStream* uiEventStream_;
- MainWindow* mainWindow_;
- AdHocCommandWindowFactory* factory_;
- GetDiscoItemsRequest::ref discoItemsRequest_;
- };
+class IQRouter;
+class MainWindow;
+class UIEventStream;
+class AdHocCommandWindowFactory;
+
+class AdHocManager {
+public:
+ AdHocManager(const JID& jid, AdHocCommandWindowFactory* factory, IQRouter* iqRouter, UIEventStream* uiEventStream, MainWindow* mainWindow);
+ ~AdHocManager();
+ void removeController(std::shared_ptr<AdHocController> contoller);
+ void setServerDiscoInfo(std::shared_ptr<DiscoInfo> info);
+ void setOnline(bool online);
+
+private:
+ void handleServerDiscoItemsResponse(std::shared_ptr<DiscoItems>, ErrorPayload::ref error);
+ void handleUIEvent(std::shared_ptr<UIEvent> event);
+ boost::signals2::signal<void (const AdHocController&)> onControllerComplete;
+
+private:
+ JID jid_;
+ IQRouter* iqRouter_;
+ UIEventStream* uiEventStream_;
+ MainWindow* mainWindow_;
+ AdHocCommandWindowFactory* factory_;
+ GetDiscoItemsRequest::ref discoItemsRequest_;
+ std::vector<std::shared_ptr<AdHocController> > controllers_;
+};
+
}