14.10 ORBメンバー関数

ORBメンバー関数は、オブジェクト・リクエスト・ブローカのプログラミング・インタフェースです。

ORBメンバー関数のC++へのマッピングは次のとおりです:

class CORBA
{
class ORB
{
public:
char *object_to_string(Object_ptr);
Object_ptr string_to_object(const char *);
void create_list(Long, NVList_out);
void create_operation_list(operationDef_ptr, NVList_out);
void create_named_value(NamedValue_out);
void create_exception_list(ExceptionList_out);
void create_context_list(ContextList_out);
void get_default_context(Context_out);
void create_environment(Environment_out);
void send_multiple_requests_oneway(const requestSeq&);
void send_multiple_requests_deferred(const requestSeq&);
Boolean poll_next_response();
void get_next_response(Request_out);
Boolean work_pending();
void perform_work();
void create_policy (in PolicyType type, in any val);
// Extension
void destroy();
// Extensions to support sharing context between threads
void Ctx get_ctx() = 0;
void set_ctx(Ctx) = 0;
void clear_ctx() = 0;
// Thread extensions
void inform_thread_exit(TID) = 0;
}; //ORB
}; // CORBA

スレッド関連の操作:

シングル・スレッドORB、およびマルチスレッド非対応のコードを実行するマルチスレッドORBをサポートするために、2つの操作(perform_workwork_pending)がORBインタフェースに含まれています。これらの操作は、シングル・スレッド・アプリケーションでもマルチスレッド・アプリケーションでも使用できます。アプリケーションが純粋なORBクライアントの場合は、これらの操作は不要です。

マルチスレッド・サーバー・アプリケーションをサポートするために、get_ctxset_ctxclear_ctx、およびinform_thread_exitの4つの操作がORBインタフェースの拡張として含まれています。

次の項では、ORBの各メンバー関数について説明します。