diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-01-10 09:24:12 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-01-10 09:24:12 +0000 |
commit | c4bf4bc99155df8414f63daa138879d8ccacb0f2 (patch) | |
tree | 6d48fd077ff8d56095bd11db2d9c2157ce93a0ac /cpp/test/IceGrid/activation/Server.cpp | |
parent | file OpenSSLRuntime.ism was initially added on branch R3_0_branch. (diff) | |
download | ice-c4bf4bc99155df8414f63daa138879d8ccacb0f2.tar.bz2 ice-c4bf4bc99155df8414f63daa138879d8ccacb0f2.tar.xz ice-c4bf4bc99155df8414f63daa138879d8ccacb0f2.zip |
Added "always" activation mode.
Diffstat (limited to 'cpp/test/IceGrid/activation/Server.cpp')
-rw-r--r-- | cpp/test/IceGrid/activation/Server.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/cpp/test/IceGrid/activation/Server.cpp b/cpp/test/IceGrid/activation/Server.cpp new file mode 100644 index 00000000000..6089d59186e --- /dev/null +++ b/cpp/test/IceGrid/activation/Server.cpp @@ -0,0 +1,68 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 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 <TestI.h> + +using namespace std; + +class Server : public Ice::Application +{ +public: + + virtual int run(int argc, char* argv[]); + +}; + +int +Server::run(int argc, char* argv[]) +{ + Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); + Ice::PropertiesPtr properties = communicator()->getProperties(); + args = properties->parseCommandLineOptions("", args); + Ice::stringSeqToArgs(args, argc, argv); + + Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); + TestI* test = new TestI(adapter); + Ice::ObjectPtr obj = test; + adapter->add(test, Ice::stringToIdentity(properties->getProperty("Ice.ServerId"))); + + int delay = properties->getPropertyAsInt("ActivationDelay"); + if(delay > 0) + { + IceUtil::ThreadControl::sleep(IceUtil::Time::seconds(delay)); + } + + shutdownOnInterrupt(); + try + { + adapter->activate(); + } + catch(const Ice::ObjectAdapterDeactivatedException&) + { + } + communicator()->waitForShutdown(); + ignoreInterrupt(); + + delay = properties->getPropertyAsInt("DeactivationDelay"); + if(delay > 0) + { + IceUtil::ThreadControl::sleep(IceUtil::Time::seconds(delay)); + } + + return test->isFailed() ? EXIT_FAILURE : EXIT_SUCCESS; +} + +int +main(int argc, char* argv[]) +{ + Server app; + int rc = app.main(argc, argv); + return rc; +} |