Borland(R) Enterprise Server VisiBroker(R) プログラマーズリファレンス
抽象インタフェースで,オブジェクトをリファレンス(IOR)で渡すか,または値(valuetype)で渡すかを実行時に決定するには,プリフィクス"abstract"を,インタフェース宣言前に使用します。
abstract interface foo { void func(): };
抽象インタフェースをサポートするvaluetypeは,その抽象インタフェースとして渡せます。抽象インタフェースはコードサンプル20-52に示すように宣言されます。
valuetype vt supports foo { ... };
抽象インタフェースとして渡す必要があるインタフェースはコードサンプル20-53に示すように宣言されます。
interface intf : foo { };
コードサンプル20-53で宣言したfooという抽象インタフェースのC++マッピングの結果は,コードサンプル20-54のようなクラスになります。
class foo_var : public CORBA::_var{ ... }; class foo_out{ ... }; class foo : public virtual CORBA:::AbstractBase{ private: ... void operator=(const foo&) {} protected: foo(); foo(const foo& ref) {} virtual ~foo() {} public: static CORBA::Object* _factory(): foo_ptr _this(); static foo_ptr _nil() { ... } static foo_ptr _narrow(CORBA::AbstractBase* _obj); static foo_ptr _narrow(CORBA::Object_ptr _obj); static foo_ptr _narrow(CORBA::ValueBase_ptr _obj); virtual void func() = 0; ... }; class _vis_foo_stub : public virtual foo, public virtual CORBA::Object { public : _vis_foo_stub() {} virtual ~_vis_foo_stub() {} ... virtual void func(): };
_varクラス,_outクラス,およびメソッドを実装するCORBA::AbstractBaseから派生したクラスがあります。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.
COPYRIGHT (C) 1992-2004 Borland Software Corporation. All rights reserved.