summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Slimber/MainController.cpp')
m---------Slimber0
-rw-r--r--Slimber/MainController.cpp123
2 files changed, 0 insertions, 123 deletions
diff --git a/Slimber b/Slimber
new file mode 160000
+Subproject 723115ef8542c640580ea4751fca3c359a79dec
diff --git a/Slimber/MainController.cpp b/Slimber/MainController.cpp
deleted file mode 100644
index c8c2ad1..0000000
--- a/Slimber/MainController.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-#include "Slimber/MainController.h"
-
-#include <boost/bind.hpp>
-#include <boost/lexical_cast.hpp>
-#include <iostream>
-
-#include "Swiften/Base/foreach.h"
-#include "Swiften/Application/Platform/PlatformApplication.h"
-#include "Swiften/LinkLocal/LinkLocalService.h"
-#include "Swiften/LinkLocal/LinkLocalServiceBrowser.h"
-#include "Swiften/LinkLocal/DNSSD/PlatformDNSSDQuerierFactory.h"
-#include "Slimber/Server.h"
-#include "Slimber/FileVCardCollection.h"
-#include "Slimber/MenuletController.h"
-#include "Slimber/Menulet.h"
-
-using namespace Swift;
-
-MainController::MainController(Menulet* menulet) : menulet(menulet) {
- menuletController = new MenuletController(menulet);
- menuletController->onRestartRequested.connect(boost::bind(
- &MainController::handleRestartRequested, this));
-
- dnsSDQuerier = PlatformDNSSDQuerierFactory().createQuerier();
- if (!dnsSDQuerier) {
- // TODO
- assert(false);
- }
-
- linkLocalServiceBrowser = new LinkLocalServiceBrowser(dnsSDQuerier);
- linkLocalServiceBrowser->onServiceAdded.connect(
- boost::bind(&MainController::handleServicesChanged, this));
- linkLocalServiceBrowser->onServiceRemoved.connect(
- boost::bind(&MainController::handleServicesChanged, this));
- linkLocalServiceBrowser->onServiceChanged.connect(
- boost::bind(&MainController::handleServicesChanged, this));
-
- vCardCollection = new FileVCardCollection(
- PlatformApplication("Slimber").getSettingsDir());
-
- server = new Server(5222, 5562, linkLocalServiceBrowser, vCardCollection);
- server->onStopped.connect(
- boost::bind(&MainController::handleServerStopped, this, _1));
- server->onSelfConnected.connect(
- boost::bind(&MainController::handleSelfConnected, this, _1));
-
- start();
-}
-
-MainController::~MainController() {
- delete menuletController;
- delete server;
- delete vCardCollection;
- linkLocalServiceBrowser->stop();
- delete linkLocalServiceBrowser;
- dnsSDQuerier->stop();
-}
-
-void MainController::start() {
- dnsSDQuerier->start();
- linkLocalServiceBrowser->start();
-
- handleSelfConnected(false);
- handleServicesChanged();
-
- server->start();
-}
-
-void MainController::stop() {
- server->stop();
- linkLocalServiceBrowser->stop();
- dnsSDQuerier->stop();
-}
-
-void MainController::handleSelfConnected(bool b) {
- if (b) {
- menuletController->setXMPPStatus("You are logged in", MenuletController::Online);
- }
- else {
- menuletController->setXMPPStatus("You are not logged in", MenuletController::Offline);
- }
-}
-
-void MainController::handleServicesChanged() {
- std::vector<String> names;
- foreach(const LinkLocalService& service, linkLocalServiceBrowser->getServices()) {
- String description = service.getDescription();
- if (description != service.getName()) {
- description += " (" + service.getName() + ")";
- }
- names.push_back(description);
- }
- menuletController->setUserNames(names);
-}
-
-void MainController::handleServerStopped(boost::optional<ServerError> error) {
- if (error) {
- String message;
- switch (error->getType()) {
- case ServerError::C2SPortConflict:
- message = String("Error: Port ") + boost::lexical_cast<std::string>(server->getClientToServerPort()) + String(" in use");
- break;
- case ServerError::C2SError:
- message = String("Local connection server error");
- break;
- case ServerError::LinkLocalPortConflict:
- message = String("Error: Port ") + boost::lexical_cast<std::string>(server->getLinkLocalPort()) + String(" in use");
- break;
- case ServerError::LinkLocalError:
- message = String("External connection server error");
- break;
- }
- menuletController->setXMPPStatus(message, MenuletController::Offline);
- }
- else {
- menuletController->setXMPPStatus("XMPP Server Not Running", MenuletController::Offline);
- }
-}
-
-void MainController::handleRestartRequested() {
- stop();
- start();
-}