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

📄 testi.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 <TestI.h>using namespace Test;BI::BI() :    _postUnmarshalInvoked(false){}boolBI::postUnmarshalInvoked(const Ice::Current&){    return _postUnmarshalInvoked;}voidBI::ice_preMarshal(){    preMarshalInvoked = true;}voidBI::ice_postUnmarshal(){    _postUnmarshalInvoked = true;}CI::CI() :    _postUnmarshalInvoked(false){}boolCI::postUnmarshalInvoked(const Ice::Current&){    return _postUnmarshalInvoked;}voidCI::ice_preMarshal(){    preMarshalInvoked = true;}voidCI::ice_postUnmarshal(){    _postUnmarshalInvoked = true;}DI::DI() :    _postUnmarshalInvoked(false){}boolDI::postUnmarshalInvoked(const Ice::Current&){    return _postUnmarshalInvoked;}voidDI::ice_preMarshal(){    preMarshalInvoked = true;}voidDI::ice_postUnmarshal(){    _postUnmarshalInvoked = true;}InitialI::InitialI(const Ice::ObjectAdapterPtr& adapter) :    _adapter(adapter),    _b1(new BI),    _b2(new BI),    _c(new CI),    _d(new DI){    _b1->theA = _b2; // Cyclic reference to another B    _b1->theB = _b1; // Self reference.    _b1->theC = 0; // Null reference.    _b2->theA = _b2; // Self reference, using base.    _b2->theB = _b1; // Cyclic reference to another B    _b2->theC = _c; // Cyclic reference to a C.    _c->theB = _b2; // Cyclic reference to a B.    _d->theA = _b1; // Reference to a B.    _d->theB = _b2; // Reference to a B.    _d->theC = 0; // Reference to a C.}voidInitialI::shutdown(const Ice::Current&){    _adapter->getCommunicator()->shutdown();}BPtrInitialI::getB1(const Ice::Current&){    _b1->preMarshalInvoked = false;    _b2->preMarshalInvoked = false;    _c->preMarshalInvoked = false;    return _b1;}BPtrInitialI::getB2(const Ice::Current&){    _b1->preMarshalInvoked = false;    _b2->preMarshalInvoked = false;    _c->preMarshalInvoked = false;    return _b2;}CPtrInitialI::getC(const Ice::Current&){    _b1->preMarshalInvoked = false;    _b2->preMarshalInvoked = false;    _c->preMarshalInvoked = false;    return _c;}DPtrInitialI::getD(const Ice::Current&){    _b1->preMarshalInvoked = false;    _b2->preMarshalInvoked = false;    _c->preMarshalInvoked = false;    _d->preMarshalInvoked = false;    return _d;}voidInitialI::getAll(BPtr& b1, BPtr& b2, CPtr& c, DPtr& d, const Ice::Current&){    _b1->preMarshalInvoked = false;    _b2->preMarshalInvoked = false;    _c->preMarshalInvoked = false;    _d->preMarshalInvoked = false;    b1 = _b1;    b2 = _b2;    c = _c;    d = _d;}boolUnexpectedObjectExceptionTestI::ice_invoke(const std::vector<Ice::Byte>&,                                           std::vector<Ice::Byte>& outParams,                                           const Ice::Current& current){    Ice::CommunicatorPtr communicator = current.adapter->getCommunicator();    Ice::OutputStreamPtr out = Ice::createOutputStream(communicator);    AlsoEmptyPtr ae = new AlsoEmpty;    ice_writeAlsoEmpty(out, ae);    out->writePendingObjects();    out->finished(outParams);    return true;}

⌨️ 快捷键说明

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