server.cpp

来自「ICE-3.2 一个开源的中间件」· C++ 代码 · 共 74 行

CPP
74
字号
// **********************************************************************//// 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 <TestI.h>using namespace std;class Server : public Ice::Application{public:    virtual int run(int argc, char* argv[]);};intServer::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);    if(properties->getPropertyAsInt("FailOnStartup") > 0)    {        return EXIT_FAILURE;    }    Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter");    TestI* test = new TestI(adapter);    Ice::ObjectPtr obj = test;    adapter->add(test, communicator()->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;}intmain(int argc, char* argv[]){    Server app;    int rc = app.main(argc, argv);    return rc;}

⌨️ 快捷键说明

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