📄 testi.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/IceUtil.h>#include <TestI.h>#include <TestCommon.h>#include <functional>#ifdef __BCPLUSPLUS__# include <iterator>#endifMyDerivedClassI::MyDerivedClassI(const Ice::ObjectAdapterPtr& adapter, const Ice::Identity& identity) : _adapter(adapter), _identity(identity){}voidMyDerivedClassI::shutdown(const Ice::Current&){ _adapter->getCommunicator()->shutdown();}voidMyDerivedClassI::opVoid(const Ice::Current&){}voidMyDerivedClassI::opSleep(int duration, const Ice::Current&){ IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(duration));}Ice::ByteMyDerivedClassI::opByte(Ice::Byte p1, Ice::Byte p2, Ice::Byte& p3, const Ice::Current&){ p3 = p1 ^ p2; return p1;}boolMyDerivedClassI::opBool(bool p1, bool p2, bool& p3, const Ice::Current&){ p3 = p1; return p2;}Ice::LongMyDerivedClassI::opShortIntLong(Ice::Short p1, Ice::Int p2, Ice::Long p3, Ice::Short& p4, Ice::Int& p5, Ice::Long& p6, const Ice::Current&){ p4 = p1; p5 = p2; p6 = p3; return p3;}Ice::DoubleMyDerivedClassI::opFloatDouble(Ice::Float p1, Ice::Double p2, Ice::Float& p3, Ice::Double& p4, const Ice::Current&){ p3 = p1; p4 = p2; return p2;}std::stringMyDerivedClassI::opString(const std::string& p1, const std::string& p2, std::string& p3, const Ice::Current&){ p3 = p2 + " " + p1; return p1 + " " + p2;}Test::MyEnumMyDerivedClassI::opMyEnum(Test::MyEnum p1, Test::MyEnum& p2, const Ice::Current&){ p2 = p1; return Test::enum3;}Test::MyClassPrxMyDerivedClassI::opMyClass(const Test::MyClassPrx& p1, Test::MyClassPrx& p2, Test::MyClassPrx& p3, const Ice::Current&){ p2 = p1; p3 = Test::MyClassPrx::uncheckedCast(_adapter->createProxy( _adapter->getCommunicator()->stringToIdentity("noSuchIdentity"))); return Test::MyClassPrx::uncheckedCast(_adapter->createProxy(_identity));}Test::StructureMyDerivedClassI::opStruct(const Test::Structure& p1, const ::Test::Structure& p2, ::Test::Structure& p3, const Ice::Current&){ p3 = p1; p3.s.s = "a new string"; return p2;}Test::ByteSMyDerivedClassI::opByteS(const Test::ByteS& p1, const Test::ByteS& p2, Test::ByteS& p3, const Ice::Current&){ p3.resize(p1.size()); std::reverse_copy(p1.begin(), p1.end(), p3.begin()); Test::ByteS r = p1; std::copy(p2.begin(), p2.end(), std::back_inserter(r)); return r;}Test::BoolSMyDerivedClassI::opBoolS(const Test::BoolS& p1, const Test::BoolS& p2, Test::BoolS& p3, const Ice::Current&){ p3 = p1; std::copy(p2.begin(), p2.end(), std::back_inserter(p3)); Test::BoolS r; r.resize(p1.size()); std::reverse_copy(p1.begin(), p1.end(), r.begin()); return r;}Test::LongSMyDerivedClassI::opShortIntLongS(const Test::ShortS& p1, const Test::IntS& p2, const Test::LongS& p3, Test::ShortS& p4, Test::IntS& p5, Test::LongS& p6, const Ice::Current&){ p4 = p1; p5.resize(p2.size()); std::reverse_copy(p2.begin(), p2.end(), p5.begin()); p6 = p3; std::copy(p3.begin(), p3.end(), std::back_inserter(p6)); return p3;}Test::DoubleSMyDerivedClassI::opFloatDoubleS(const Test::FloatS& p1, const Test::DoubleS& p2, Test::FloatS& p3, Test::DoubleS& p4, const Ice::Current&){ p3 = p1; p4.resize(p2.size()); std::reverse_copy(p2.begin(), p2.end(), p4.begin()); Test::DoubleS r = p2; std::copy(p1.begin(), p1.end(), std::back_inserter(r)); return r;}Test::StringSMyDerivedClassI::opStringS(const Test::StringS& p1, const Test::StringS& p2, Test::StringS& p3, const Ice::Current&){ p3 = p1; std::copy(p2.begin(), p2.end(), std::back_inserter(p3)); Test::StringS r; r.resize(p1.size()); std::reverse_copy(p1.begin(), p1.end(), r.begin()); return r;}Test::ByteSSMyDerivedClassI::opByteSS(const Test::ByteSS& p1, const Test::ByteSS& p2, Test::ByteSS& p3, const Ice::Current&){ p3.resize(p1.size()); std::reverse_copy(p1.begin(), p1.end(), p3.begin()); Test::ByteSS r = p1; std::copy(p2.begin(), p2.end(), std::back_inserter(r)); return r;}Test::BoolSSMyDerivedClassI::opBoolSS(const Test::BoolSS& p1, const Test::BoolSS& p2, Test::BoolSS& p3, const Ice::Current&){ p3 = p1; std::copy(p2.begin(), p2.end(), std::back_inserter(p3)); Test::BoolSS r; r.resize(p1.size()); std::reverse_copy(p1.begin(), p1.end(), r.begin()); return r;}Test::LongSSMyDerivedClassI::opShortIntLongSS(const Test::ShortSS& p1, const Test::IntSS& p2, const Test::LongSS& p3, Test::ShortSS& p4, Test::IntSS& p5, Test::LongSS& p6, const Ice::Current&){ p4 = p1; p5.resize(p2.size()); std::reverse_copy(p2.begin(), p2.end(), p5.begin()); p6 = p3; std::copy(p3.begin(), p3.end(), std::back_inserter(p6)); return p3;}Test::DoubleSSMyDerivedClassI::opFloatDoubleSS(const Test::FloatSS& p1, const Test::DoubleSS& p2, Test::FloatSS& p3, Test::DoubleSS& p4, const Ice::Current&){ p3 = p1; p4.resize(p2.size()); std::reverse_copy(p2.begin(), p2.end(), p4.begin()); Test::DoubleSS r = p2; std::copy(p2.begin(), p2.end(), std::back_inserter(r)); return r;}Test::StringSSMyDerivedClassI::opStringSS(const Test::StringSS& p1, const Test::StringSS& p2, Test::StringSS& p3, const Ice::Current&){ p3 = p1; std::copy(p2.begin(), p2.end(), std::back_inserter(p3)); Test::StringSS r; r.resize(p2.size()); std::reverse_copy(p2.begin(), p2.end(), r.begin()); return r;}Test::StringSSSMyDerivedClassI::opStringSSS(const Test::StringSSS& p1, const Test::StringSSS& p2, Test::StringSSS& p3, const ::Ice::Current&){ p3 = p1; std::copy(p2.begin(), p2.end(), std::back_inserter(p3)); Test::StringSSS r; r.resize(p2.size()); std::reverse_copy(p2.begin(), p2.end(), r.begin()); return r;}Test::ByteBoolDMyDerivedClassI::opByteBoolD(const Test::ByteBoolD& p1, const Test::ByteBoolD& p2, Test::ByteBoolD& p3, const Ice::Current&){ p3 = p1; Test::ByteBoolD r = p1; std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); return r;}Test::ShortIntDMyDerivedClassI::opShortIntD(const Test::ShortIntD& p1, const Test::ShortIntD& p2, Test::ShortIntD& p3, const Ice::Current&){ p3 = p1; Test::ShortIntD r = p1; std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); return r;}Test::LongFloatDMyDerivedClassI::opLongFloatD(const Test::LongFloatD& p1, const Test::LongFloatD& p2, Test::LongFloatD& p3, const Ice::Current&){ p3 = p1; Test::LongFloatD r = p1; std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); return r;}Test::StringStringDMyDerivedClassI::opStringStringD(const Test::StringStringD& p1, const Test::StringStringD& p2, Test::StringStringD& p3, const Ice::Current&){ p3 = p1; Test::StringStringD r = p1; std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); return r;}Test::StringMyEnumDMyDerivedClassI::opStringMyEnumD(const Test::StringMyEnumD& p1, const Test::StringMyEnumD& p2, Test::StringMyEnumD& p3, const Ice::Current&){ p3 = p1; Test::StringMyEnumD r = p1; std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); return r;}Test::IntSMyDerivedClassI::opIntS(const Test::IntS& s, const Ice::Current&){ Test::IntS r; std::transform(s.begin(), s.end(), std::back_inserter(r), std::negate<int>()); return r;}voidMyDerivedClassI::opByteSOneway(const Test::ByteS&, const Ice::Current&){}Test::StringStringDMyDerivedClassI::opContext(const Ice::Current& c){ return c.ctx;}void MyDerivedClassI::opDoubleMarshaling(Ice::Double p1, const Test::DoubleS& p2, const Ice::Current&){ Ice::Double d = 1278312346.0 / 13.0; test(p1 == d); for(unsigned int i = 0; i < p2.size(); ++i) { test(p2[i] == d); }}voidMyDerivedClassI::opDerived(const Ice::Current&){}Ice::ContextTestCheckedCastI::getContext(const Ice::Current& c){ return _ctx;}boolTestCheckedCastI::ice_isA(const std::string& s, const Ice::Current& current) const{ _ctx = current.ctx;#ifdef __BCPLUSPLUS__ return Test::TestCheckedCast::ice_isA(s, current);#else return TestCheckedCast::ice_isA(s, current);#endif}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -