summaryrefslogtreecommitdiff
path: root/cpp/demo/Ice/properties/Server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/demo/Ice/properties/Server.cpp')
-rw-r--r--cpp/demo/Ice/properties/Server.cpp104
1 files changed, 0 insertions, 104 deletions
diff --git a/cpp/demo/Ice/properties/Server.cpp b/cpp/demo/Ice/properties/Server.cpp
deleted file mode 100644
index 9da45baf44a..00000000000
--- a/cpp/demo/Ice/properties/Server.cpp
+++ /dev/null
@@ -1,104 +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/Ice.h>
-#include <Props.h>
-
-using namespace std;
-
-//
-// The servant implements the Slice interface Demo::Props as well as the
-// native callback class Ice::PropertiesAdminUpdateCallback.
-//
-class PropsI : public Demo::Props,
- public Ice::PropertiesAdminUpdateCallback,
- IceUtil::Monitor<IceUtil::Mutex>
-{
-public:
-
- PropsI() : _called(false)
- {
- }
-
- virtual Ice::PropertyDict getChanges(const Ice::Current&)
- {
- IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
-
- //
- // Make sure that we have received the property updates before we
- // return the results.
- //
- while(!_called)
- {
- wait();
- }
-
- _called = false;
- return _changes;
- }
-
- virtual void shutdown(const Ice::Current& current)
- {
- current.adapter->getCommunicator()->shutdown();
- }
-
- virtual void updated(const Ice::PropertyDict& changes)
- {
- IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
-
- _changes = changes;
- _called = true;
- notify();
- }
-
-private:
-
- Ice::PropertyDict _changes;
- bool _called;
-};
-typedef IceUtil::Handle<PropsI> PropsIPtr;
-
-class Server : public Ice::Application
-{
-public:
-
- virtual int run(int, char*[]);
-};
-
-int
-main(int argc, char* argv[])
-{
- Server app;
- return app.main(argc, argv, "config.server");
-}
-
-int
-Server::run(int argc, char*[])
-{
- if(argc > 1)
- {
- cerr << appName() << ": too many arguments" << endl;
- return EXIT_FAILURE;
- }
-
- PropsIPtr props = new PropsI;
-
- //
- // Retrieve the PropertiesAdmin facet and register the servant as the update callback.
- //
- Ice::ObjectPtr obj = communicator()->findAdminFacet("Properties");
- Ice::NativePropertiesAdminPtr admin = Ice::NativePropertiesAdminPtr::dynamicCast(obj);
- admin->addUpdateCallback(props);
-
- Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Props");
- adapter->add(props, communicator()->stringToIdentity("props"));
- adapter->activate();
- communicator()->waitForShutdown();
- return EXIT_SUCCESS;
-}