ここでは、ORB(クライアント/サーバ間の通信を仲介する機能:Object Request Broker)の初期化などを行うための基本的なインタフェースを提供するORBクラスについて説明します。
class CORBA { public: typedef string ORBid; typedef string ObjectId ; typedef BOA_ptr *BOA; typedef NVList_ptr *NVList; typedef OperationDef_ptr *OperationDef; typedef Context_ptr *Context; ORB_ptr ORB_init(int&, char**, ORBid); class ORB : public CORBA { public: BOA_ptr BOA_init (int *, char **, BOAid, CORBA::Environment& ); Object_ptr resolve_initial_references (ObjectId, CORBA::Environment&); char *object_to_string(Object_ptr, CORBA::Environment&); Object_ptr string_to_object(const char *, CORBA::Environment& ); Status create_list(Long, NVList_ptr&, CORBA::Environment& ); Status create_operation_list(OperationDef_ptr, NVList&, CORBA::Environment& ); Status get_default_context(Context_ptr&, CORBA::Environment& ); Status create_environment(Environment_ptr&, CORBA::Environment& ); Status send_multiple_requests_oneway(const RequestSeq&, CORBA::Environment& ); Status send_multiple_requests_deferred(const RequestSeq, CORBA::Environment& ); Status get_next_response(RequestSeq*&, CORBA::Environment& ); boolean poll_next_response( CORBA::Environment& ); }; class RequestSeq { public: RequestSeq(); RequestSeq( ULong max ); RequestSeq( ULong max, ULong length, Request_ptr *value, Boolean release = FALSE ); ~RequestSeq();
private: ULong _maximum;
ULong _length; Request_ptr *_buffer; }; }