diff options
Diffstat (limited to 'Swiften/Examples/LinkLocalTool/main.cpp')
-rw-r--r-- | Swiften/Examples/LinkLocalTool/main.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
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(); +} |