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

📄 twoways.cpp

📁 ICE-3.2 一个开源的中间件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// **********************************************************************//// 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 <TestCommon.h>#include <Test.h>#include <limits>//// Stupid Visual C++ defines min and max as macros :-(//#ifdef min#   undef min#endif#ifdef max#   undef max#endifusing namespace std;voidtwoways(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrx& p){    {        p->opVoid();    }    {        Ice::Byte b;        Ice::Byte r;        r = p->opByte(Ice::Byte(0xff), Ice::Byte(0x0f), b);        test(b == Ice::Byte(0xf0));        test(r == Ice::Byte(0xff));    }    {        bool b;        bool r;        r = p->opBool(true, false, b);        test(b);        test(!r);    }    {        Ice::Short s;        Ice::Int i;        Ice::Long l;        Ice::Long r;        r = p->opShortIntLong(10, 11, 12, s, i, l);        test(s == 10);        test(i == 11);        test(l == 12);        test(r == 12);                r = p->opShortIntLong(numeric_limits<Ice::Short>::min(), numeric_limits<Ice::Int>::min(),                              numeric_limits<Ice::Long>::min(), s, i, l);        test(s == numeric_limits<Ice::Short>::min());        test(i == numeric_limits<Ice::Int>::min());        test(l == numeric_limits<Ice::Long>::min());        test(r == numeric_limits<Ice::Long>::min());                r = p->opShortIntLong(numeric_limits<Ice::Short>::max(), numeric_limits<Ice::Int>::max(),                              numeric_limits<Ice::Long>::max(), s, i, l);        test(s == numeric_limits<Ice::Short>::max());        test(i == numeric_limits<Ice::Int>::max());        test(l == numeric_limits<Ice::Long>::max());        test(r == numeric_limits<Ice::Long>::max());    }    {        Ice::Float f;        Ice::Double d;        Ice::Double r;                r = p->opFloatDouble(Ice::Float(3.14), Ice::Double(1.1E10), f, d);        test(f == Ice::Float(3.14));        test(d == Ice::Double(1.1E10));        test(r == Ice::Double(1.1E10));        r = p->opFloatDouble(numeric_limits<Ice::Float>::min(), numeric_limits<Ice::Double>::min(), f, d);        test(f == numeric_limits<Ice::Float>::min());        test(d == numeric_limits<Ice::Double>::min());        test(r == numeric_limits<Ice::Double>::min());        r = p->opFloatDouble(numeric_limits<Ice::Float>::max(), numeric_limits<Ice::Double>::max(), f, d);        test(f == numeric_limits<Ice::Float>::max());        test(d == numeric_limits<Ice::Double>::max());        test(r == numeric_limits<Ice::Double>::max());    }    {        string s;        string r;        r = p->opString("hello", "world", s);        test(s == "world hello");        test(r == "hello world");    }    {        Test::MyEnum e;        Test::MyEnum r;                r = p->opMyEnum(Test::enum2, e);        test(e == Test::enum2);        test(r == Test::enum3);    }    {        Test::MyClassPrx c1;        Test::MyClassPrx c2;        Test::MyClassPrx r;                r = p->opMyClass(p, c1, c2);        test(Ice::proxyIdentityAndFacetEqual(c1, p));        test(!Ice::proxyIdentityAndFacetEqual(c2, p));        test(Ice::proxyIdentityAndFacetEqual(r, p));        test(c1->ice_getIdentity() == communicator->stringToIdentity("test"));        test(c2->ice_getIdentity() == communicator->stringToIdentity("noSuchIdentity"));        test(r->ice_getIdentity() == communicator->stringToIdentity("test"));        r->opVoid();        c1->opVoid();        try        {            c2->opVoid();            test(false);        }        catch(const Ice::ObjectNotExistException&)        {        }        r = p->opMyClass(0, c1, c2);        test(c1 == 0);        test(c2 != 0);        test(Ice::proxyIdentityAndFacetEqual(r, p));        r->opVoid();    }    {        Test::Structure si1;        si1.p = p;        si1.e = Test::enum3;        si1.s.s = "abc";        Test::Structure si2;        si2.p = 0;        si2.e = Test::enum2;        si2.s.s = "def";                Test::Structure so;        Test::Structure rso = p->opStruct(si1, si2, so);        test(rso.p == 0);        test(rso.e == Test::enum2);        test(rso.s.s == "def");        test(so.p == p);        test(so.e == Test::enum3);        test(so.s.s == "a new string");        so.p->opVoid();    }    {        Test::ByteS bsi1;        Test::ByteS bsi2;        bsi1.push_back(Ice::Byte(0x01));        bsi1.push_back(Ice::Byte(0x11));        bsi1.push_back(Ice::Byte(0x12));        bsi1.push_back(Ice::Byte(0x22));        bsi2.push_back(Ice::Byte(0xf1));        bsi2.push_back(Ice::Byte(0xf2));        bsi2.push_back(Ice::Byte(0xf3));        bsi2.push_back(Ice::Byte(0xf4));        Test::ByteS bso;        Test::ByteS rso;        rso = p->opByteS(bsi1, bsi2, bso);        test(bso.size() == 4);        test(bso[0] == Ice::Byte(0x22));        test(bso[1] == Ice::Byte(0x12));        test(bso[2] == Ice::Byte(0x11));        test(bso[3] == Ice::Byte(0x01));        test(rso.size() == 8);        test(rso[0] == Ice::Byte(0x01));        test(rso[1] == Ice::Byte(0x11));        test(rso[2] == Ice::Byte(0x12));        test(rso[3] == Ice::Byte(0x22));        test(rso[4] == Ice::Byte(0xf1));        test(rso[5] == Ice::Byte(0xf2));        test(rso[6] == Ice::Byte(0xf3));        test(rso[7] == Ice::Byte(0xf4));    }    {        Test::BoolS bsi1;        Test::BoolS bsi2;        bsi1.push_back(true);        bsi1.push_back(true);        bsi1.push_back(false);        bsi2.push_back(false);        Test::BoolS bso;        Test::BoolS rso;        rso = p->opBoolS(bsi1, bsi2, bso);        test(bso.size() == 4);        test(bso[0]);        test(bso[1]);        test(!bso[2]);        test(!bso[3]);        test(rso.size() == 3);        test(!rso[0]);        test(rso[1]);        test(rso[2]);    }    {        Test::ShortS ssi;        Test::IntS isi;        Test::LongS lsi;        ssi.push_back(1);        ssi.push_back(2);        ssi.push_back(3);        isi.push_back(5);        isi.push_back(6);        isi.push_back(7);        isi.push_back(8);        lsi.push_back(10);        lsi.push_back(30);        lsi.push_back(20);        Test::ShortS sso;        Test::IntS iso;        Test::LongS lso;        Test::LongS rso;        rso = p->opShortIntLongS(ssi, isi, lsi, sso, iso, lso);        test(sso.size() == 3);        test(sso[0] == 1);        test(sso[1] == 2);        test(sso[2] == 3);        test(iso.size() == 4);        test(iso[0] == 8);        test(iso[1] == 7);        test(iso[2] == 6);        test(iso[3] == 5);        test(lso.size() == 6);        test(lso[0] == 10);        test(lso[1] == 30);        test(lso[2] == 20);        test(lso[3] == 10);        test(lso[4] == 30);        test(lso[5] == 20);        test(rso.size() == 3);        test(rso[0] == 10);        test(rso[1] == 30);        test(rso[2] == 20);    }    {        Test::FloatS fsi;        Test::DoubleS dsi;        fsi.push_back(Ice::Float(3.14));        fsi.push_back(Ice::Float(1.11));        dsi.push_back(Ice::Double(1.1E10));        dsi.push_back(Ice::Double(1.2E10));        dsi.push_back(Ice::Double(1.3E10));        Test::FloatS fso;        Test::DoubleS dso;        Test::DoubleS rso;        rso = p->opFloatDoubleS(fsi, dsi, fso, dso);        test(fso.size() == 2);        test(fso[0] == ::Ice::Float(3.14));        test(fso[1] == ::Ice::Float(1.11));        test(dso.size() == 3);        test(dso[0] == ::Ice::Double(1.3E10));        test(dso[1] == ::Ice::Double(1.2E10));        test(dso[2] == ::Ice::Double(1.1E10));        test(rso.size() == 5);        test(rso[0] == ::Ice::Double(1.1E10));        test(rso[1] == ::Ice::Double(1.2E10));        test(rso[2] == ::Ice::Double(1.3E10));        test(::Ice::Float(rso[3]) == ::Ice::Float(3.14));        test(::Ice::Float(rso[4]) == ::Ice::Float(1.11));    }    {        Test::StringS ssi1;        Test::StringS ssi2;        ssi1.push_back("abc");        ssi1.push_back("de");        ssi1.push_back("fghi");        ssi2.push_back("xyz");        Test::StringS sso;        Test::StringS rso;        rso = p->opStringS(ssi1, ssi2, sso);        test(sso.size() == 4);        test(sso[0] == "abc");        test(sso[1] == "de");        test(sso[2] == "fghi");        test(sso[3] == "xyz");        test(rso.size() == 3);        test(rso[0] == "fghi");        test(rso[1] == "de");        test(rso[2] == "abc");    }    {        Test::ByteSS bsi1;        bsi1.resize(2);        Test::ByteSS bsi2;        bsi2.resize(2);        bsi1[0].push_back(Ice::Byte(0x01));        bsi1[0].push_back(Ice::Byte(0x11));        bsi1[0].push_back(Ice::Byte(0x12));        bsi1[1].push_back(Ice::Byte(0xff));        bsi2[0].push_back(Ice::Byte(0x0e));        bsi2[1].push_back(Ice::Byte(0xf2));        bsi2[1].push_back(Ice::Byte(0xf1));        Test::ByteSS bso;        Test::ByteSS rso;        rso = p->opByteSS(bsi1, bsi2, bso);        test(bso.size() == 2);        test(bso[0].size() == 1);        test(bso[0][0] == Ice::Byte(0xff));        test(bso[1].size() == 3);        test(bso[1][0] == Ice::Byte(0x01));        test(bso[1][1] == Ice::Byte(0x11));        test(bso[1][2] == Ice::Byte(0x12));        test(rso.size() == 4);        test(rso[0].size() == 3);        test(rso[0][0] == Ice::Byte(0x01));        test(rso[0][1] == Ice::Byte(0x11));        test(rso[0][2] == Ice::Byte(0x12));        test(rso[1].size() == 1);        test(rso[1][0] == Ice::Byte(0xff));        test(rso[2].size() == 1);        test(rso[2][0] == Ice::Byte(0x0e));        test(rso[3].size() == 2);        test(rso[3][0] == Ice::Byte(0xf2));        test(rso[3][1] == Ice::Byte(0xf1));    }    {        Test::FloatSS fsi;        fsi.resize(3);        Test::DoubleSS dsi;        dsi.resize(1);        fsi[0].push_back(Ice::Float(3.14));        fsi[1].push_back(Ice::Float(1.11));

⌨️ 快捷键说明

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