summaryrefslogtreecommitdiff
path: root/perf/src/IceStorm/Subscriber.cpp
diff options
context:
space:
mode:
authorJoe George <joe@zeroc.com>2015-03-24 09:31:19 -0400
committerJoe George <joe@zeroc.com>2015-03-24 09:33:55 -0400
commitf8593257de589a2e3a7b6213de00fea9fb8755a3 (patch)
tree6d9480983a609b504e086b28a697930f2971fc21 /perf/src/IceStorm/Subscriber.cpp
parentAdded TestHelper.h for IceTouch/WinRT tests, another fix to TestUtil.py for d... (diff)
downloadice-f8593257de589a2e3a7b6213de00fea9fb8755a3.tar.bz2
ice-f8593257de589a2e3a7b6213de00fea9fb8755a3.tar.xz
ice-f8593257de589a2e3a7b6213de00fea9fb8755a3.zip
ICE-6391 Moved perf to its own repo
Diffstat (limited to 'perf/src/IceStorm/Subscriber.cpp')
-rw-r--r--perf/src/IceStorm/Subscriber.cpp141
1 files changed, 0 insertions, 141 deletions
diff --git a/perf/src/IceStorm/Subscriber.cpp b/perf/src/IceStorm/Subscriber.cpp
deleted file mode 100644
index b4010abc3db..00000000000
--- a/perf/src/IceStorm/Subscriber.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-#include <Ice/Application.h>
-#include <IceStorm/IceStorm.h>
-#include <IceUtil/UUID.h>
-
-#include <PerfI.h>
-
-#include <map>
-
-#include <math.h>
-
-using namespace std;
-using namespace Perf;
-
-class Subscriber : public Ice::Application
-{
-public:
-
- virtual int run(int, char*[]);
-};
-
-int
-main(int argc, char* argv[])
-{
- Subscriber app;
- return app.main(argc, argv, "config");
-}
-
-int
-Subscriber::run(int argc, char* argv[])
-{
- int repetitions = 10000;
- bool batch = false;
- bool twoway = false;
- bool ordered = false;
- int nPublishers = 1;
- for(int i = 0; i < argc; i++)
- {
- if(strcmp(argv[i], "-r") == 0)
- {
- repetitions = atoi(argv[++i]);
- }
- if(strcmp(argv[i], "-b") == 0)
- {
- batch = true;
- }
- if(strcmp(argv[i], "-t") == 0)
- {
- twoway = true;
- }
- if(strcmp(argv[i], "-o") == 0)
- {
- ordered = true;
- }
- if(strcmp(argv[i], "-c") == 0)
- {
- nPublishers = atoi(argv[++i]);
- }
- }
-
- Ice::PropertiesPtr properties = communicator()->getProperties();
-
- const string proxyProperty = "IceStorm.TopicManager.Proxy";
- string proxy = properties->getProperty(proxyProperty);
- if(proxy.empty())
- {
- cerr << appName() << ": property `" << proxyProperty << "' not set" << endl;
- return EXIT_FAILURE;
- }
-
- Ice::ObjectPrx base = communicator()->stringToProxy(proxy);
- IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base);
- if(!manager)
- {
- cerr << appName() << ": invalid proxy" << endl;
- return EXIT_FAILURE;
- }
-
- //
- // Set the requested quality of service "reliability" =
- // "batch". This tells IceStorm to send events to the subscriber
- // in batches at regular intervals.
- //
- IceStorm::QoS qos;
- if(batch)
- {
- qos["reliability"] = "batch";
- }
- else if(twoway)
- {
- qos["reliability"] = "twoway";
- }
- else if(ordered)
- {
- qos["reliability"] = "twoway-ordered";
- }
-
- //
- // Create the servant to receive the events.
- //
- Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Ping.Subscriber");
- Ice::ObjectPtr ping = new PingI(repetitions, nPublishers);
-
- //
- // Add a Servant for the Ice Object.
- //
- Ice::ObjectPrx object = adapter->addWithUUID(ping);
- IceStorm::TopicPrx topic;
- try
- {
- topic = manager->retrieve("time");
- }
- catch(const IceStorm::NoSuchTopic&)
- {
- try
- {
- topic = manager->create("time");
- }
- catch(const IceStorm::TopicExists&)
- {
- topic = manager->retrieve("time");
- }
- }
- topic->subscribe(qos, object);
-
- adapter->activate();
- shutdownOnInterrupt();
- communicator()->waitForShutdown();
-
- topic->unsubscribe(object);
-
- return EXIT_SUCCESS;
-}