summaryrefslogtreecommitdiff
path: root/cpp/demo/IceGrid/allocate/Client.cpp
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2015-03-18 12:58:16 -0230
committerMatthew Newhook <matthew@zeroc.com>2015-03-18 12:58:16 -0230
commit9b7668c7c92cf9cb311fe444cdddb489cd2a219d (patch)
tree5016567c58c81f5654e9d01935e199c6bf4761d2 /cpp/demo/IceGrid/allocate/Client.cpp
parentVS add-in & build updates: (diff)
downloadice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.tar.bz2
ice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.tar.xz
ice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.zip
Removed demos.
Moved demoscript to distribution.
Diffstat (limited to 'cpp/demo/IceGrid/allocate/Client.cpp')
-rw-r--r--cpp/demo/IceGrid/allocate/Client.cpp192
1 files changed, 0 insertions, 192 deletions
diff --git a/cpp/demo/IceGrid/allocate/Client.cpp b/cpp/demo/IceGrid/allocate/Client.cpp
deleted file mode 100644
index 5afe84517d0..00000000000
--- a/cpp/demo/IceGrid/allocate/Client.cpp
+++ /dev/null
@@ -1,192 +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 <IceUtil/IceUtil.h>
-#include <Ice/Ice.h>
-#include <IceGrid/IceGrid.h>
-#include <Hello.h>
-
-using namespace std;
-using namespace Demo;
-
-class HelloClient : public Ice::Application
-{
-public:
-
- HelloClient();
- virtual int run(int, char*[]);
-
-private:
-
- void cleanup();
- void menu();
- string trim(const string&);
-};
-
-int
-main(int argc, char* argv[])
-{
- HelloClient app;
- return app.main(argc, argv, "config.client");
-}
-
-HelloClient::HelloClient() :
- //
- // Since this is an interactive demo we don't want any signal
- // handling.
- //
- Ice::Application(Ice::NoSignalHandling)
-{
-}
-
-int
-HelloClient::run(int argc, char* argv[])
-{
- if(argc > 1)
- {
- cerr << appName() << ": too many arguments" << endl;
- return EXIT_FAILURE;
- }
-
- int status = EXIT_SUCCESS;
-
- IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
- communicator()->stringToProxy("DemoIceGrid/Registry"));
- if(!registry)
- {
- cerr << argv[0] << ": could not contact registry" << endl;
- return EXIT_FAILURE;
- }
-
- IceGrid::SessionPrx session;
- while(!session)
- {
- cout << "This demo accepts any user-id / password combination.\n";
-
- string id;
- cout << "user id: " << flush;
- getline(cin, id);
- id = trim(id);
-
- string password;
- cout << "password: " << flush;
- getline(cin, password);
- password = trim(password);
-
- try
- {
- session = registry->createSession(id, password);
- break;
- }
- catch(const IceGrid::PermissionDeniedException& ex)
- {
- cout << "permission denied:\n" << ex.reason << endl;
- }
- }
-
- //
- // Enable heartbeats on the session connection to maintain the
- // connection alive even if idle.
- //
- session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::HeartbeatAlways);
-
- try
- {
- //
- // First try to retrieve object by identity, which will work
- // if the application-single.xml descriptor is used. Otherwise
- // we retrieve object by type, which will succeed if the
- // application-multiple.xml descriptor is used.
- //
- HelloPrx hello;
- try
- {
- hello = HelloPrx::checkedCast(session->allocateObjectById(communicator()->stringToIdentity("hello")));
- }
- catch(const IceGrid::ObjectNotRegisteredException&)
- {
- hello = HelloPrx::checkedCast(session->allocateObjectByType("::Demo::Hello"));
- }
-
- menu();
-
- char c = 'x';
- do
- {
- try
- {
- cout << "==> ";
- cin >> c;
- if(c == 't')
- {
- hello->sayHello();
- }
- else if(c == 's')
- {
- hello->shutdown();
- }
- else if(c == 'x')
- {
- // Nothing to do
- }
- else if(c == '?')
- {
- menu();
- }
- else
- {
- cout << "unknown command `" << c << "'" << endl;
- menu();
- }
- }
- catch(const Ice::Exception& ex)
- {
- cerr << ex << endl;
- }
- }
- while(cin.good() && c != 'x');
- }
- catch(const IceGrid::AllocationException& ex)
- {
- cerr << argv[0] << ": could not allocate object: " << ex.reason << endl;
- status = EXIT_FAILURE;
- }
- catch(...)
- {
- cerr << "unexpected exception" << endl;
- status = EXIT_FAILURE;
- }
-
- session->destroy();
-
- return status;
-}
-
-void
-HelloClient::menu()
-{
- cout <<
- "usage:\n"
- "t: send greeting\n"
- "s: shutdown server\n"
- "x: exit\n"
- "?: help\n";
-}
-
-string
-HelloClient::trim(const string& s)
-{
- static const string delims = "\t\r\n ";
- string::size_type last = s.find_last_not_of(delims);
- if(last != string::npos)
- {
- return s.substr(s.find_first_not_of(delims), last+1);
- }
- return s;
-}