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

📄 server.pc

📁 ICE-3.2 一个开源的中间件
💻 PC
字号:
// **********************************************************************//// Copyright (c) 2003-2006 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 <EmpI.h>#include <DeptI.h>#include <DeptFactoryI.h>#include <Ice/Application.h>#include <Ice/ServantLocator.h>#include <sqlca.h>using namespace std;class HRServer : public Ice::Application{public:    HRServer(const CurrentSqlContext&);    virtual int run(int, char*[]);private:    CurrentSqlContext _currentCtx;};class DefaultServantLocator : public Ice::ServantLocator{public:        DefaultServantLocator(const Ice::ObjectPtr& servant) :        _servant(servant)    {    }    virtual Ice::ObjectPtr locate(const Ice::Current&, Ice::LocalObjectPtr&)    {        return _servant;    }    virtual void finished(const Ice::Current& curr,                           const Ice::ObjectPtr& servant,                           const Ice::LocalObjectPtr& cookie)    {    }    virtual void deactivate(const std::string&)    {    }private:    Ice::ObjectPtr _servant;};intmain(int argc, char* argv[]){    sqlca sqlca;    EXEC SQL CONTEXT USE DEFAULT;    EXEC SQL ENABLE THREADS;        Ice::InitializationData initData;    initData.properties = Ice::createProperties(argc, argv);    initData.properties->load("config.server");    const string connectInfo = initData.properties        ->getPropertyWithDefault("Oracle.ConnectInfo", "scott/tiger");    CurrentSqlContext currentCtx(connectInfo);    initData.threadHook = currentCtx.getHook();    HRServer app(currentCtx);    return app.main(argc, argv, initData);}HRServer::HRServer(const CurrentSqlContext& currentCtx) :    _currentCtx(currentCtx){}intHRServer::run(int argc, char* argv[]){    Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("HR");    const string empCategory = "Emp";    const string deptCategory = "Dept";    adapter->addServantLocator(new DefaultServantLocator(new EmpI(_currentCtx, empCategory, deptCategory)),                               empCategory);    adapter->addServantLocator(new DefaultServantLocator(new DeptI(_currentCtx, empCategory)), deptCategory);    adapter->add(new DeptFactoryI(_currentCtx, deptCategory, empCategory),                  communicator()->stringToIdentity("DeptFactory"));        adapter->activate();    communicator()->waitForShutdown();    return EXIT_SUCCESS;}

⌨️ 快捷键说明

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