// ********************************************************************** // // Copyright (c) 2003 // ZeroC, Inc. // Billerica, MA, USA // // All Rights Reserved. // // Ice is free software; you can redistribute it and/or modify it under // the terms of the GNU General Public License version 2 as published by // the Free Software Foundation. // // ********************************************************************** #include #include #include using namespace std; int run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) { Test::MyClassPrx allTests(const Ice::CommunicatorPtr&, bool); Test::MyClassPrx myClass = allTests(communicator, false); cout << "testing server shutdown... " << flush; myClass->shutdown(); try { myClass->opVoid(); test(false); } catch(const Ice::LocalException&) { cout << "ok" << endl; } return EXIT_SUCCESS; } int main(int argc, char* argv[]) { int status; Ice::CommunicatorPtr communicator; try { Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv); // // In this test, we need at least two threads in the // client side thread pool for nested AMI. // properties->setProperty("Ice.ThreadPool.Client.Size", "2"); properties->setProperty("Ice.ThreadPool.Client.SizeWarn", "0"); communicator = Ice::initialize(argc, argv); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) { cerr << ex << endl; status = EXIT_FAILURE; } if(communicator) { try { communicator->destroy(); } catch(const Ice::Exception& ex) { cerr << ex << endl; status = EXIT_FAILURE; } } return status; }