⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.cpp

📁 ICE-3.2 一个开源的中间件
💻 CPP
字号:
// **********************************************************************//// Copyright (c) 2003-2007 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 <IceUtil/Thread.h>#include <IceGrid/Query.h>#include <Hello.h>using namespace std;using namespace Demo;class HelloClient : public Ice::Application{public:    virtual int run(int, char*[]);    virtual void interruptCallback(int);private:    void menu();};intmain(int argc, char* argv[]){    HelloClient app;    return app.main(argc, argv, "config.client");}intHelloClient::run(int argc, char* argv[]){    //    // Since this is an interactive demo we want the custom interrupt    // callback to be called when the process is interrupted.    //    callbackOnInterrupt();    //    // Get the hello proxy. We configure the proxy to not cache the    // server connection with the proxy and to disable the locator    // cache. With this configuration, the IceGrid locator will be    // queried for each invocation on the proxy and the invocation    // will be sent over the server connection matching the returned    // endpoints.    //    Ice::ObjectPrx obj = communicator()->stringToProxy("hello");    obj = obj->ice_connectionCached(false);    obj = obj->ice_locatorCacheTimeout(0);    HelloPrx hello = HelloPrx::checkedCast(obj);    if(!hello)    {        cerr << argv[0] << ": couldn't find a `::Demo::Hello' object." << endl;        return EXIT_FAILURE;    }    string s;    do    {        cout << "enter the number of iterations: ";        cin >> s;        int count = atoi(s.c_str());        cout << "enter the delay between each greetings (in ms): ";        cin >> s;        int delay = atoi(s.c_str());        if(delay < 0)        {            delay = 500; // 500 milli-seconds        }                for(int i = 0; i < count; i++)        {            cout << hello->getGreeting() << endl;            IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(delay));        }    }    while(cin.good() && s != "x");    return EXIT_SUCCESS;}voidHelloClient::interruptCallback(int){    try    {        communicator()->destroy();    }    catch(const IceUtil::Exception& ex)    {        cerr << appName() << ": " << ex << endl;    }    catch(...)    {        cerr << appName() << ": unknown exception" << endl;    }    exit(EXIT_SUCCESS);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -