diff options
Diffstat (limited to 'Swiften/Examples/LinkLocalTool')
-rw-r--r-- | Swiften/Examples/LinkLocalTool/.gitignore | 1 | ||||
-rw-r--r-- | Swiften/Examples/LinkLocalTool/SConscript | 16 | ||||
-rw-r--r-- | Swiften/Examples/LinkLocalTool/main.cpp | 49 |
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(); +} |