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

📄 alltests.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>using namespace std;using namespace Test;class CallbackBase : public IceUtil::Monitor<IceUtil::Mutex>{public:    CallbackBase() :        _called(false)    {    }    virtual ~CallbackBase()    {    }    bool check()    {        IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);        while(!_called)        {            if(!timedWait(IceUtil::Time::seconds(5)))            {                return false;            }        }        _called = false;        return true;    }protected:    void called()    {        IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);        assert(!_called);        _called = true;        notify();    }private:    bool _called;};class AMI_Test_baseAsBaseI : public AMI_TestIntf_baseAsBase, public CallbackBase{    virtual void    ice_response()    {        test(false);    }    virtual void    ice_exception(const Ice::Exception& exc)    {        try        {            exc.ice_throw();        }        catch(const Base& b)        {            test(b.b == "Base.b");            test(b.ice_name() =="Test::Base");        }        catch(...)        {            test(false);        }        called();    }};typedef IceUtil::Handle<AMI_Test_baseAsBaseI> AMI_Test_baseAsBaseIPtr;class AMI_Test_unknownDerivedAsBaseI : public AMI_TestIntf_unknownDerivedAsBase, public CallbackBase{    virtual void    ice_response()    {        test(false);    }    virtual void    ice_exception(const Ice::Exception& exc)    {        try        {            exc.ice_throw();        }        catch(const Base& b)        {            test(b.b == "UnknownDerived.b");            test(b.ice_name() =="Test::Base");        }        catch(...)        {            test(false);        }        called();    }};typedef IceUtil::Handle<AMI_Test_unknownDerivedAsBaseI> AMI_Test_unknownDerivedAsBaseIPtr;class AMI_Test_knownDerivedAsBaseI : public AMI_TestIntf_knownDerivedAsBase, public CallbackBase{    virtual void    ice_response()    {        test(false);    }    virtual void    ice_exception(const Ice::Exception& exc)    {        try        {            exc.ice_throw();        }        catch(const KnownDerived& k)        {            test(k.b == "KnownDerived.b");            test(k.kd == "KnownDerived.kd");            test(k.ice_name() =="Test::KnownDerived");        }        catch(...)        {            test(false);        }        called();    }};typedef IceUtil::Handle<AMI_Test_knownDerivedAsBaseI> AMI_Test_knownDerivedAsBaseIPtr;class AMI_Test_knownDerivedAsKnownDerivedI : public AMI_TestIntf_knownDerivedAsKnownDerived, public CallbackBase{    virtual void    ice_response()    {        test(false);    }    virtual void    ice_exception(const Ice::Exception& exc)    {        try        {            exc.ice_throw();        }        catch(const KnownDerived& k)        {            test(k.b == "KnownDerived.b");            test(k.kd == "KnownDerived.kd");            test(k.ice_name() =="Test::KnownDerived");        }        catch(...)        {            test(false);        }        called();    }};typedef IceUtil::Handle<AMI_Test_knownDerivedAsKnownDerivedI> AMI_Test_knownDerivedAsKnownDerivedIPtr;class AMI_Test_unknownIntermediateAsBaseI : public AMI_TestIntf_unknownIntermediateAsBase, public CallbackBase{    virtual void    ice_response()    {        test(false);    }    virtual void    ice_exception(const Ice::Exception& exc)    {        try        {            exc.ice_throw();        }        catch(const Base& b)        {            test(b.b == "UnknownIntermediate.b");            test(b.ice_name() =="Test::Base");        }        catch(...)        {            test(false);        }        called();    }};typedef IceUtil::Handle<AMI_Test_unknownIntermediateAsBaseI> AMI_Test_unknownIntermediateAsBaseIPtr;class AMI_Test_knownIntermediateAsBaseI : public AMI_TestIntf_knownIntermediateAsBase, public CallbackBase{    virtual void    ice_response()    {        test(false);    }    virtual void    ice_exception(const Ice::Exception& exc)    {        try        {            exc.ice_throw();        }        catch(const KnownIntermediate& ki)        {            test(ki.b == "KnownIntermediate.b");            test(ki.ki == "KnownIntermediate.ki");            test(ki.ice_name() =="Test::KnownIntermediate");        }        catch(...)        {            test(false);        }        called();    }};typedef IceUtil::Handle<AMI_Test_knownIntermediateAsBaseI> AMI_Test_knownIntermediateAsBaseIPtr;class AMI_Test_knownMostDerivedAsBaseI : public AMI_TestIntf_knownMostDerivedAsBase,                                         public CallbackBase{    virtual void    ice_response()    {        test(false);    }    virtual void    ice_exception(const Ice::Exception& exc)    {        try        {            exc.ice_throw();        }        catch(const KnownMostDerived& kmd)        {            test(kmd.b == "KnownMostDerived.b");            test(kmd.ki == "KnownMostDerived.ki");            test(kmd.kmd == "KnownMostDerived.kmd");            test(kmd.ice_name() =="Test::KnownMostDerived");        }        catch(...)        {            test(false);        }        called();    }};typedef IceUtil::Handle<AMI_Test_knownMostDerivedAsBaseI> AMI_Test_knownMostDerivedAsBaseIPtr;class AMI_Test_knownIntermediateAsKnownIntermediateI : public AMI_TestIntf_knownIntermediateAsKnownIntermediate,                                                       public CallbackBase{    virtual void    ice_response()    {        test(false);    }    virtual void    ice_exception(const Ice::Exception& exc)    {        try        {            exc.ice_throw();        }        catch(const KnownIntermediate& ki)        {            test(ki.b == "KnownIntermediate.b");            test(ki.ki == "KnownIntermediate.ki");            test(ki.ice_name() =="Test::KnownIntermediate");        }        catch(...)        {            test(false);        }        called();    }};typedef IceUtil::Handle<AMI_Test_knownIntermediateAsKnownIntermediateI> AMI_Test_knownIntermediateAsKnownIntermediateIPtr;class AMI_Test_knownMostDerivedAsKnownMostDerivedI : public AMI_TestIntf_knownMostDerivedAsKnownMostDerived,                                                      public CallbackBase{    virtual void    ice_response()    {        test(false);    }    virtual void    ice_exception(const Ice::Exception& exc)    {        try        {            exc.ice_throw();        }        catch(const KnownMostDerived& kmd)        {            test(kmd.b == "KnownMostDerived.b");            test(kmd.ki == "KnownMostDerived.ki");            test(kmd.kmd == "KnownMostDerived.kmd");            test(kmd.ice_name() =="Test::KnownMostDerived");        }        catch(...)        {            test(false);        }        called();    }};typedef IceUtil::Handle<AMI_Test_knownMostDerivedAsKnownMostDerivedI> AMI_Test_knownMostDerivedAsKnownMostDerivedIPtr;class AMI_Test_knownMostDerivedAsKnownIntermediateI : public AMI_TestIntf_knownMostDerivedAsKnownIntermediate,                                                      public CallbackBase{    virtual void    ice_response()    {        test(false);    }    virtual void    ice_exception(const Ice::Exception& exc)    {        try        {            exc.ice_throw();        }        catch(const KnownMostDerived& kmd)        {            test(kmd.b == "KnownMostDerived.b");            test(kmd.ki == "KnownMostDerived.ki");            test(kmd.kmd == "KnownMostDerived.kmd");            test(kmd.ice_name() =="Test::KnownMostDerived");        }        catch(...)        {            test(false);        }        called();    }};typedef IceUtil::Handle<AMI_Test_knownMostDerivedAsKnownIntermediateI> AMI_Test_knownMostDerivedAsKnownIntermediateIPtr;class AMI_Test_unknownMostDerived1AsBaseI : public AMI_TestIntf_unknownMostDerived1AsBase,                                            public CallbackBase{    virtual void    ice_response()    {        test(false);    }    virtual void    ice_exception(const Ice::Exception& exc)    {        try        {            exc.ice_throw();        }        catch(const KnownIntermediate& ki)        {            test(ki.b == "UnknownMostDerived1.b");            test(ki.ki == "UnknownMostDerived1.ki");            test(string(ki.ice_name()) =="Test::KnownIntermediate");        }        catch(...)        {            test(false);        }        called();    }};typedef IceUtil::Handle<AMI_Test_unknownMostDerived1AsBaseI> AMI_Test_unknownMostDerived1AsBaseIPtr;class AMI_Test_unknownMostDerived1AsKnownIntermediateI : public AMI_TestIntf_unknownMostDerived1AsKnownIntermediate,                                                         public CallbackBase{    virtual void    ice_response()    {        test(false);    }    virtual void    ice_exception(const Ice::Exception& exc)    {        try        {            exc.ice_throw();        }

⌨️ 快捷键说明

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