summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Examples/LinkLocalTool')
-rw-r--r--Swiften/Examples/LinkLocalTool/.gitignore1
-rw-r--r--Swiften/Examples/LinkLocalTool/SConscript16
-rw-r--r--Swiften/Examples/LinkLocalTool/main.cpp49
3 files changed, 66 insertions, 0 deletions
diff --git a/Swiften/Examples/LinkLocalTool/.gitignore b/Swiften/Examples/LinkLocalTool/.gitignore
new file mode 100644
index 0000000..684ef0b
--- /dev/null
+++ b/Swiften/Examples/LinkLocalTool/.gitignore
@@ -0,0 +1 @@
+LinkLocalTool
diff --git a/Swiften/Examples/LinkLocalTool/SConscript b/Swiften/Examples/LinkLocalTool/SConscript
new file mode 100644
index 0000000..0feceae
--- /dev/null
+++ b/Swiften/Examples/LinkLocalTool/SConscript
@@ -0,0 +1,16 @@
+Import("env")
+
+myenv = env.Clone()
+myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
+myenv.MergeFlags(myenv["LIBIDN_FLAGS"])
+myenv.MergeFlags(myenv["BOOST_FLAGS"])
+myenv.MergeFlags(myenv["SQLITE_FLAGS"])
+myenv.MergeFlags(myenv["ZLIB_FLAGS"])
+myenv.MergeFlags(myenv["OPENSSL_FLAGS"])
+myenv.MergeFlags(myenv.get("LIBXML_FLAGS", {}))
+myenv.MergeFlags(myenv.get("EXPAT_FLAGS", {}))
+myenv.MergeFlags(myenv.get("AVAHI_FLAGS", {}))
+
+linkLocalTool = myenv.Program("LinkLocalTool", [
+ "main.cpp"
+ ])
diff --git a/Swiften/Examples/LinkLocalTool/main.cpp b/Swiften/Examples/LinkLocalTool/main.cpp
new file mode 100644
index 0000000..ccecd1a
--- /dev/null
+++ b/Swiften/Examples/LinkLocalTool/main.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2010 Remko Tronçon
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+// FIXME: This example is not complete yet
+
+#include <iostream>
+
+#include "Swiften/EventLoop/SimpleEventLoop.h"
+#include "Swiften/LinkLocal/DNSSD/PlatformDNSSDQuerierFactory.h"
+#include "Swiften/LinkLocal/DNSSD/DNSSDQuerier.h"
+#include "Swiften/LinkLocal/DNSSD/DNSSDBrowseQuery.h"
+#include "Swiften/LinkLocal/DNSSD/DNSSDResolveServiceQuery.h"
+
+using namespace Swift;
+
+int main(int argc, char* argv[]) {
+ if (argc < 2) {
+ std::cerr << "Invalid parameters" << std::endl;
+ return -1;
+ }
+
+ SimpleEventLoop eventLoop;
+ PlatformDNSSDQuerierFactory factory;
+ boost::shared_ptr<DNSSDQuerier> querier = factory.createQuerier();
+ querier->start();
+
+ if (String(argv[1]) == "browse") {
+ boost::shared_ptr<DNSSDBrowseQuery> browseQuery = querier->createBrowseQuery();
+ browseQuery->startBrowsing();
+ eventLoop.run();
+ browseQuery->stopBrowsing();
+ }
+ else if (String(argv[1]) == "resolve-service") {
+ if (argc < 5) {
+ std::cerr << "Invalid parameters" << std::endl;
+ return -1;
+ }
+ boost::shared_ptr<DNSSDResolveServiceQuery> resolveQuery = querier->createResolveServiceQuery(DNSSDServiceID(argv[2], argv[3], argv[4]));
+ resolveQuery->start();
+ eventLoop.run();
+ std::cerr << "Done running" << std::endl;
+ resolveQuery->stop();
+ }
+
+ querier->stop();
+}