ここでは、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;
};
}