ORBインタフェース |
ORBインタフェースは、オブジェクトリファレンスの表現の変換、各種擬似オブジェクトやクラスインスタンスの作成など、汎用的な機能を提供する擬似オブジェクトインタフェースです。
4.4.1.3. CORBA::ORBクラス |
CORBA::ORBクラスは、オブジェクトリファレンスの表現を変換したり、各種擬似オブジェクトを作成するなど、汎用的な機能を提供します。
さらに、Object Broker独自の機能として、各種動作環境の設定や設定値の獲得などいくつかの機能を提供しています。
list_initial_services | 初期サービス名一覧を取得する |
resolve_initial_references | 初期サービスのオブジェクトリファレンスを取得する |
object_to_string | オブジェクトリファレンスを文字列表現に変換する |
string_to_object | オブジェクトリファレンスをバイナリ表現に変換する |
create_list | NVList擬似オブジェクトを作成する |
create_operation_list | オペレーションの引数リストを作成する |
create_named_value | NamedValue擬似オブジェクトを作成する |
create_exception_list | 例外リストを作成する |
create_context_list | コンテキストリストを作成する |
get_default_context | デフォルトのコンテキストオブジェクトを獲得する |
create_environment | Environment擬似オブジェクトを作成する |
send_multiple_requests_oneway | 応答を要求しない複数のリクエストを送信する |
send_multiple_requests_deferred | 応答を要求する複数のリクエストを送信する |
poll_next_response | 複数送信されたリクエストに対する応答が到着しているかを調べる |
get_next_response | 複数送信されたリクエストに対する応答を1つ受け取る |
work_pending | メインスレッドで処理すべきリクエストがあるかどうかを調べる |
perform_work | リクエストの処理を行う |
run | リクエスト処理ループを実行する |
shutdown | ORBに終了を通知する |
create_struct_tc | IDL struct型のタイプコードを作成する |
create_union_tc | IDL union型のタイプコードを作成する |
create_enum_tc | IDL enum型のタイプコードを作成する |
create_alias_tc | IDL typedef型のタイプコードを作成する |
create_exception_tc | IDL exceptionのタイプコードを作成する |
create_interface_tc | IDL interfaceのタイプコードを作成する |
create_string_tc | IDL string型のタイプコードを作成する |
create_wstring_tc | IDL wstring型のタイプコードを作成する |
create_sequence_tc | IDL sequence型のタイプコードを作成する |
create_recursive_sequence_tc | リカーシブシーケンスを表すタイプコードを作成する |
create_array_tc | IDL 配列型のタイプコードを作成する |
create_fixed_tc | IDL fixed型のタイプコードを作成する |
create_value_tc | IDL valuetype型のタイプコードを作成する |
create_value_box_tc | IDL valuetype型(boxed valuetype)のタイプコードを作成する |
create_native_tc | IDL native型のタイプコードを作成する |
create_abstract_interface_tc | IDL abstract interface型のタイプコードを作成する |
create_recursive_tc | 再帰的に使用される型を表すタイプコードを作成する |
__get_tsident | TSIdentification擬似オブジェクトを取得する |
__server_path_name | サーバパス名設定値を取り出す |
__server_path_name(const char*) | サーバパス名を設定する |
__implementation_name | インプリメンテーション名設定値を取り出す |
__implementation_name(const char*) | インプリメンテーション名を設定する |
__server_port | サーバポート番号設定値を取り出す |
__server_port(CORBA::UShort) | サーバポート番号を設定する |
__server_activation_policy | 活性化方針設定値を取り出す |
__server_activation_policy(Obi::ActPolicyType) | 活性化方針を設定する |
__server_hostname | サーバホスト名設定値を取り出す |
__server_hostname(const char*) | サーバホスト名を設定する |
__process_request_timeout | 呼び出しタイムアウトの設定値を取り出す(プロセス単位) |
__process_request_timeout(CORBA::ULong) | 呼び出しタイムアウト値を設定する(プロセス単位) |
__request_timeout | 呼び出しタイムアウトの設定値を取り出す(スレッド単位) |
__request_timeout(CORBA::ULong) | 呼び出しタイムアウト値を設定する(スレッド単位) |
__reuse_socket | ソケット再利用設定値を取り出す |
__reuse_socket(CORBA::Boolean) | ソケット再利用に関する設定をする |
__server_argument | サーバプロセス自動起動時の引数設定値を取り出す |
__server_argument(const CORBA::ORB::arg_list&) | サーバプロセス自動起動時の引数を設定する |
__server_argument_index | 自動起動情報引数の位置設定を取り出す |
__server_argument_index(CORBA::ULong) | 自動起動情報引数の位置を設定する |
__use_IR | インタフェースリポジトリ利用に関する設定値を取り出す |
__use_IR(CORBA::Boolean) | インタフェースリポジトリ利用に関する情報を設定する |
__server_request_timeout | サーバでのリクエストタイムアウト値を取り出す |
__server_request_timeout(CORBA::ULong) | サーバでのリクエストタイムアウト値を設定する |
__server_thread_policy | スレッド処理方針を得る |
__server_thread_policy(Ob_ThreadPolicy) | スレッド処理方針を設定する |
__server_thread_number | プールスレッド数を得る |
__server_thread_number(CORBA::ULong) | プールスレッド数を設定する |
__native_code_set | string型のネイティブコードセットの設定値を取り出す |
__native_code_set(const char*) | string型のネイティブコードセットを設定する |
__native_code_set_w | wchar/wstring型のネイティブコードセットの設定値を取り出す |
__native_code_set_w(const char*) | wchar/wstring型のネイティブコードセットを設定する |
__conversion_code_sets | string型のコンバージョンコードセットの設定値を取り出す |
__conversion_code_sets(const Ob_StringSeq&) | string型のコンバージョンコードセットを設定する |
__conversion_code_sets_w | wchar/wstring型のコンバージョンコードセットの設定値を取り出す |
__conversion_code_sets_w(const Ob_StringSeq&) | wchar/wstring型のコンバージョンコードセットを設定する |
__set_connection_reuse_policy(CORBA::Object_ptr,const char*) | コネクション制御ポリシーを設定したIORを持つリファレンスを新規に作成する |
__set_connection_reuse_policy(IOP_IOR&,const char*) | IORにコネクション制御ポリシーを設定する |
register_value_factory | ValueFactoryを登録する |
unregister_value_factory | ValueFactoryの登録を削除する |
lookup_value_factory | 登録されているValueFactoryを検索する |
※ このほかにもObject Broker独自のメソッドとして、サーバを多重化するためのメソッドがあります。
CORBA::ORB::list_initial_services - 初期サービス名一覧を取得する
#include <orb.h> CORBA::ORB::ObjectIdList* CORBA::ORB::list_initial_services( CORBA::Environment& env = Ob_default_environment() );
初期サービス名のリストが返ります。これらの名前はresolve_initial_referencesに指定することにより、初期サービスのオブジェクトリファレンスを得ることができます。 Object Brokerでは常に、名前サービスの名前"NameService"、インタフェースリポジトリの名前"InterfaceRepository"、ルートPOAの名前"RootPOA"およびPortableServer::Currentのインスタンスの名前"POACurrent"が返ります。
CORBA::ORB_initに渡された引数のうち、"-ORBInitRef"で指定された初期サービスオブジェクトがあった場合は、初期サービス名のリストに追加されます。
初期サービス名のリストが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::resolve_initial_references,
CORBA::ORB::resolve_initial_references
- 初期サービスのオブジェクトリファレンスを取得する
#include <orb.h> CORBA::Object_ptr CORBA::ORB::resolve_initial_references( const char* oid, CORBA::Environment& env = Ob_default_environment() );
oidで指定されたサービスのオブジェクトリファレンスを取得します。たとえば、名前サービスのときはルートコンテキストのオブジェクトリファレンス、インタフェースリポジトリのときはリポジトリのオブジェクトリファレンスが返ります。
oidに指定する名前は、CORBA::ORB::list_initial_servicesで取り出します。
oidに"NameService"または"InterfaceRepository"が指定された場合は、下記の順番で検索されます。
指定されたサービスのオブジェクトリファレンスが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::list_initial_services,
CORBA::ORB::object_to_string
- オブジェクトリファレンスを文字列表現に変換する
#include <orb.h> char* CORBA::ORB::object_to_string( CORBA::Object_ptr obj, CORBA::Environment& env = Ob_default_environment() );
CORBA::ORB::object_to_stringはobjで指定されたバイナリ表現のオブジェクトリファレンスをIOR形式の文字列表現に変換します。
オブジェクトリファレンスをホスト間でやりとりするときは、ホストアーキテクチャに依存しない文字列表現で行われます。また、クライアントやサーバのプログラム中では、バイナリ表現で使用されます。たとえば、オブジェクトリファレンスを永続的なデータとして保存したいとき、object_to_stringでオブジェクトリファレンスを文字列表現に変換したものをファイルに書き出しておくということができます。
文字列表現のオブジェクトリファレンスが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB_init, CORBA::ORB::string_to_object
CORBA::ORB::string_to_object
- オブジェクトリファレンスをバイナリ表現に変換する
#include <orb.h> CORBA::Object_ptr CORBA::ORB::string_to_object( const char* str, CORBA::Environment& env = Ob_default_environment() );
CORBA::ORB::string_to_objectはstrで指定された文字列表現のオブジェクトリファレンスをバイナリ表現に変換します。
文字列表現のオブジェクトリファレンスにはIOR形式、iioploc URL形式、iiopname URL形式、corbaloc URL形式、corbaname URL形式があります。
オブジェクトリファレンスをホスト間でやりとりするときは、ホストアーキテクチャに依存しない文字列表現で行われます。また、クライアントやサーバのプログラム中では、バイナリ表現で使用されます。これらの相互変換には、CORBA::ORB::object_to_stringとCORBA::ORB::string_to_objectを使います。これらを使って、あらかじめファイルに保存しておいた文字列表現のオブジェクトリファレンスを、プログラムの実行時に読み出してバイナリ表現に復元させることができます。
バイナリ表現のオブジェクトリファレンスが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB_init, CORBA::ORB::object_to_string,
CORBA::ORB::create_list - NVList擬似オブジェクトを作成する
#include <orb.h> CORBA::Status CORBA::ORB::create_list( CORBA::ULong count, CORBA::NVList_ptr& new_list, CORBA::Environment& env = Ob_default_environment() );
NVList疑似オブジェクトを作成して返します。NVListは動的起動インタフェース(DII)や動的スケルトンインタフェース(DSI)で、オペレーションの引数リスト、コンテキストのプロパティリストを表現するために使われます。
count引数には要素の数を指定します。
作成されたNVList擬似オブジェクトはout引数new_listに返されます。
正常終了したときはCORBA::Status_Successが返ります。
異常終了したときはCORBA::Status_Failedが返ります。
CORBA::Status_Failedが返り、CORBA標準例外がthrowされます。
動的起動インタフェース(DII), 動的スケルトンインタフェース(DSI),
CORBA::ORB::create_operation_list - オペレーションの引数リストを作成する
#include <orb.h> CORBA::Status CORBA::ORB::create_operation_list( CORBA::OperationDef_ptr oper, CORBA::NVList_ptr& new_list, CORBA::Environment& env = Ob_default_environment() );
インタフェースリポジトリに登録されたインタフェースから、オペレーションの引数リストを作成します。作成されたNVListは動的起動インタフェース(DII)や動的スケルトンインタフェース(DSI)の引数リストとして使われます。
operには、引数リストを作成したいオペレーションの、インタフェースリポジトリ上のオブジェクトリファレンスを指定します。
作成されたNVList擬似オブジェクトはout引数new_listに返されます。
(例) 例外処理は省略します
// IDL interface foo { void op(in string s, out long l); }; // C++ CORBA::Environment env; CORBA::ORB_var orb = CORBA::ORB_init(...); CORBA::Object_var obj = ...; CORBA::InterfaceDef_var intf = obj->_get_interface(env); CORBA::Contained_var ctd = intf->lookup("op"); CORBA::OperationDef_var opdef = CORBA::OperationDef::_narrow(ctd); CORBA::NVList_var params; orb->create_operation_list(opdef, (CORBA::NVList*&)params, env); CORBA::NamedValue_ptr nv = params->item(0, env); CORBA::Any* a = nv->value(env); const char* s = "Hello World"; *a <<= CORBA::Any::form_string(s, 0); ...
正常終了したときはCORBA::Status_Successが返ります。
異常終了したときはCORBA::Status_Failedが返ります。
CORBA::Status_Failedが返り、CORBA標準例外がthrowされます。
動的起動インタフェース(DII), 動的スケルトンインタフェース(DSI),
CORBA::ORB::create_named_value - NamedValue擬似オブジェクトを作成する
#include <orb.h> CORBA::Status CORBA::ORB::create_named_value( CORBA::NamedValue_ptr& nv, CORBA::Environment& env = Ob_default_environment() );
NamedValue疑似オブジェクトを作成します。これは、動的起動インタフェース(DII)や動的スケルトンインタフェース(DSI)で、オペレーションの引数や戻り値、コンテキストのプロパティを表現するときに使われます。
作成されたNamedValue疑似オブジェクトはout引数nvに返ります。
正常終了したときはCORBA::Status_Successが返ります。
異常終了したときはCORBA::Status_Failedが返ります。
CORBA::Status_Failedが返り、CORBA標準例外がthrowされます。
動的起動インタフェース(DII), 動的スケルトンインタフェース(DSI),
CORBA::ORB::create_exception_list - 例外リストを作成する
#include <orb.h> CORBA::Status CORBA::ORB::create_exception_list( CORBA::ExceptionList_ptr& excepts, CORBA::Environment& env = Ob_default_environment() );
例外リストを表現するCORBA::ExceptionListのインスタンスを生成します。例外リストは、動的起動インタフェース(DII)で、オペレーションが受けることのできるユーザ例外を意味します。
作成されたExceptionList疑似オブジェクトはout引数exceptsに返ります。
(例) 例外処理は省略します
// IDL exception exc1{}; exception exc2{}; interface foo { void op() raises (exc1, exc2); }; // C++ CORBA::Environment env; CORBA::ORB_var orb = CORBA::ORB_init(...); CORBA::Object_var obj = ...; CORBA::ExceptionList_var exceps; // 例外リストを作成する。 orb->create_exception_list((CORBA::ExceptionList*&)exceps, env); // インタフェースリポジトリから例外のタイプコードを取ってきて // exc1, exc2にセットする。 CORBA::TypeCode_var exc1t; CORBA::TypeCode_var exc2t; ... // 例外リストにexc1, exc2を追加する。 excepts->add(exc1t, env); excepts->add(exc2t, env); CORBA::Request_ptr req; obj->_create_request(0, "op", 0, 0, excepts, 0, req, 1, env); req->invoke(env);
正常終了したときはCORBA::Status_Successが返ります。
異常終了したときはCORBA::Status_Failedが返ります。
CORBA::Status_Failedが返り、CORBA標準例外がthrowされます。
動的起動インタフェース(DII), 引数リストを表すインタフェース
CORBA::ORB::create_context_list - コンテキストリストを作成する
#include <orb.h> CORBA::Status CORBA::ORB::create_context_list( CORBA::ContextList_ptr& contexts, CORBA::Environment& env = Ob_default_environment() );
コンテキストリストを表現するCORBA::ContextListインスタンスを生成します。コンテキストリストは、動的起動インタフェース(DII)で、オペレーションが指定できるコンテキストを意味します。
作成されたContextList疑似オブジェクトはout引数contextsに返ります。
(例) 例外処理は省略します
// IDL interface foo { void op() context (KIND, SIZE); }; // C++ CORBA::Environment env; CORBA::ORB_var orb = CORBA::ORB_init(...); CORBA::Object_var obj = ...; CORBA::Context_var ctx = ...; CORBA::ContextList_var contexts; orb->create_context_list((CORBA::ContxtList*&)contexts, env); contexts->add((const char*)"KIND", env); contexts->add((const char*)"SIZE", env); CORBA::Request_ptr req; obj->_create_request(ctx, "op", 0, 0, 0, contexts, req, 1, env); req->invoke(env);
正常終了したときはCORBA::Status_Successが返ります。
異常終了したときはCORBA::Status_Failedが返ります。
CORBA::Status_Failedが返り、CORBA標準例外がthrowされます。
動的起動インタフェース(DII), 引数リストを表すインタフェース
CORBA::ORB::get_default_context
- デフォルトのコンテキストオブジェクトを獲得する
#include <orb.h> CORBA::Status CORBA::ORB::get_default_context( CORBA::Context_ptr& ctx, CORBA::Environment& env = Ob_default_environment() );
get_default_contextを用いるとデフォルトのコンテキストオブジェクトを獲得できます。
獲得したコンテキストオブジェクトはout引数ctxに返されます。
コンテキストオブジェクトは動的起動インタフェース(DII)で使われます。
正常終了したときはCORBA::Status_Successが返ります。
異常終了したときはCORBA::Status_Failedが返ります。
CORBA::Status_Failedが返り、CORBA標準例外がthrowされます。
動的起動インタフェース(DII), Contextインタフェース
CORBA::ORB::create_environment - Environment擬似オブジェクトを作成する
#include <orb.h> CORBA::Status CORBA::ORB::create_environment( CORBA::Environment_ptr& newenv, CORBA::Environment& env = Ob_default_environment() );
Environment擬似オブジェクトを作成します。
作成されたEnvironment疑似オブジェクトはout引数newenvに返ります。
正常終了したときはCORBA::Status_Successが返ります。
異常終了したときはCORBA::Status_Failedが返ります。
CORBA::Status_Failedが返り、CORBA標準例外がthrowされます。
動的起動インタフェース(DII), Environmentインタフェース,
CORBA::ORB::send_multiple_requests_oneway
- 応答を要求しない複数のリクエストを送信する
#include <orb.h> CORBA::Status CORBA::ORB::send_multiple_requests_oneway( const CORBA::ORB::RequestSeq& rs, CORBA::Environment& env = Ob_default_environment() );
rsで指定したリクエストを応答を要求しないリクエストとして送信します。send_multiple_requests_onewayはサーバ側のオペレーションの終了を待たずに呼び出しを返します。
送信に成功したときはCORBA::Status_Successが返ります。
送信に失敗したときはCORBA::Status_Failedが返ります。
CORBA::Status_Failedが返り、CORBA標準例外がthrowされます。
CORBA::ORB::poll_next_response,
CORBA::ORB::send_multiple_requests_deferred,
CORBA::ORB::send_multiple_requests_deferred
- 応答を要求する複数のリクエストを送信する
#include <orb.h> CORBA::Status CORBA::ORB::send_multiple_requests_deferred( const CORBA::ORB::RequestSeq& rs, CORBA::Environment& env = Ob_default_environment() );
rsで指定した複数のリクエストを応答を要求するリクエストとして送信します。
send_multiple_requests_deferredはオペレーションの終了を待たずに呼び出しを返します。オペレーションの終了を把握するためにはget_next_responseかpoll_next_responseオペレーションを使います。
送信に成功したときはCORBA::Status_Successが返ります。
送信に失敗したときはCORBA::Status_Failedが返ります。
CORBA::Status_Failedが返り、CORBA標準例外がthrowされます。
CORBA::ORB::send_multiple_requests_oneway,
CORBA::ORB::poll_next_response,
CORBA::ORB::poll_next_response
- 複数送信されたリクエストに対する応答が到着しているかを調べる
#include <orb.h> CORBA::Boolean CORBA::ORB::poll_next_response( CORBA::Environment& env = Ob_default_environment() );
複数送信されたリクエストの応答が1つ以上到着しているかを調べます。
1: 1つ以上の応答が到着している
0: 応答が1つもない
CORBA標準例外がthrowされます。
CORBA::ORB::send_multiple_requests_oneway,
CORBA::ORB::send_multiple_requests_deferred,
CORBA::ORB::get_next_response
- 複数送信されたリクエストに対する応答を1つ受け取る
#include <orb.h> CORBA::Boolean CORBA::ORB::get_next_response( const CORBA::Request_ptr& oreq, CORBA::Environment& env = Ob_default_environment() );
複数送信されたリクエストの応答のうちの1つを受け取ります。応答が到着していないときは受け取れるまで待つか、タイムアウトの指定がされているときはタイムアウトするまで待ちます。 タイムアウトの設定については、 [ アプリケーション開発ガイド(CORBA) > 1. CORBA アプリケーション > 1.2. プログラミング・開発ガイド > 1.2.2. Object Broker > 1.2.2.6. Object Broker C++の機能 > タイムアウトの設定方法] を参照してください。
受信に成功したときはCORBA::Status_Successが返ります。
受信に失敗したときはCORBA::Status_Failedが返ります。
CORBA::Status_Failedが返り、CORBA標準例外がthrowされます。
CORBA::ORB::send_multiple_requests_oneway,
CORBA::ORB::send_multiple_requests_deferred,
CORBA::ORB::poll_next_response,
CORBA::ORB::__process_request_timeout(CORBA::ULong),
CORBA::ORB::__request_timeout(CORBA::ULong)
CORBA::ORB::work_pending
- メインスレッドで処理すべきリクエストがあるかどうかを調べる
#include <orb.h> CORBA::Boolean CORBA::ORB::work_pending( CORBA::Environment& env = Ob_default_environment() );
サーバがメインスレッドで処理すべきリクエストが到着しているかどうかを調べます。サーバのスレッド処理方針により、動作は以下のように異なります。
クライアントからのリクエストが到着するまで待ち続けます。リクエストが到着すると1を返します。
メインスレッドで処理すべきリクエストが到着しているかどうかの判定を行います。スレッド処理方針としてSINGLE_THREAD_MODELをもつPOAに関連したリクエスト処理において、ユーザ実装部分を実行する必要があるときは1を返します。ORB_CTRL_MODELのときは0を返します。
CORBA::ORB::shutdown()を呼び出したあとは常に0を返します。
サーバがメインスレッドで処理すべきリクエストが到着していた場合には1を、そうでなければ0を返します。
CORBA標準例外がthrowされます。
PortableServer::ThreadPolicyクラス,
CORBA::ORB::perform_work
- リクエストの処理を行う
#include <orb.h> void CORBA::ORB::perform_work( CORBA::Environment& env = Ob_default_environment() );
CORBA::ORB::work_pendingが1を返した後、メインスレッドで呼び出すとリクエストの処理を行います。サーバのスレッド処理方針により、動作は以下のように異なります。
CORBA::ORB::work_pending()で受け取ったリクエストを処理します。
スレッド処理方針としてSINGLE_THREAD_MODELをもつPOAに関連するリクエスト処理において、ユーザ実装部分を実行します。
CORBA::ORB::work_pendingが0を返したときやメインスレッド以外で呼び出されたときは、何もしません。
ありません。
CORBA標準例外がthrowされます。
PortableServer::ThreadPolicyクラス,
CORBA::ORB::run
- リクエスト処理ループを実行する
#include <orb.h> void CORBA::ORB::run( CORBA::Environment& env = Ob_default_environment() );
このオペレーションは、メインスレッドから呼ばれた場合、クライアントからのリクエストを処理するループを実行します。CORBA::ORB::shutdownオペレーションが 呼ばれるとループを抜け、このオペレーションは返ります。
メインスレッド以外から呼ばれた場合には、CORBA::ORB::shutdownオペレーションが呼ばれるまで待ち合わせを行います。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::shutdown
- ORBに終了を通知する
#include <orb.h> void CORBA::ORB::shutdown( CORBA::Boolean wait_for_completion, CORBA::Environment& env = Ob_default_environment() );
ORBに終了を通知します。このとき、サーバプロセス内のすべてのPOAマネージャに対してPortableServer::POAManager::deactivateオペレーションを呼び出します。deactivateオペレーションの第1引数には1、第2引数にはwait_for_completionの値が渡されます。
wait_for_completionパラメータが1のとき、このオペレーションはすべてのORBの処理(リクエスト処理、オブジェクトの非活性化、オブジェクトアダプタの処理)が完了するまで待ちます。
ありません。
CORBA標準例外がthrowされます。
PortableServer::POAManager::deactivate,
CORBA::ORB::create_struct_tc
- IDL struct型のタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_struct_tc( const char* id, const char* name, const CORBA::StructMemberSeq& members, CORBA::Environment& env = Ob_default_environment() );
IDL struct型のタイプコードを作成します。
idにはリポジトリIDを指定します。リポジトリIDとは、IDL型を識別するための識別子で、IDLで定義した型のリポジトリIDはIDLコンパイラによってつけられます。IDL struct型のリポジトリIDはインタフェースリポジトリのid関数によって得ることができます。
nameにはIDL struct型の型名を指定します。
membersにはIDL struct型のメンバの情報を指定します。
IDL struct型のメンバの情報はCORBA::StructMember構造体のシーケンスで表されます。CORBA::StructMember構造体は以下のように定義されています。
struct CORBA::StructMember { CORBA::String_var name; // IDL structのメンバ名 CORBA::TypeCode_var type; // IDL structのメンバ型 CORBA::IDLType_var type_def; // create_struct_tcでは使用しない };
(例)
// IDL struct T { long l; string s; }; // C++ CORBA::Environment env; CORBA::ORB_var orb = CORBA::ORB_init(...); ... CORBA::Repository_var ir = ...; // インタフェースリポジトリ CORBA::RepositoryId id = ...; CORBA::StructMember members[2]; CORBA::StructMemberSeq mseq(2, 2, members); CORBA::PrimitiveDef_var lpd = ir->get_primitive(CORBA::pk_long, env); CORBA::TypeCode_var ltc = lpd->type(env); CORBA::PrimitiveDef_var spd = ir->get_primitive(CORBA::pk_string, env); CORBA::TypeCode_var stc = spd->type(env); members[0] = {(const char*)"l", ltc, 0}; members[1] = {(const char*)"s", stc, 0}; CORBA::TypeCode_var tc = orb->create_struct_tc(id, "T", mseq, env);
構造体を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
TypeCodeインタフェース, IDL any型, インタフェースリポジトリ
CORBA::ORB::create_union_tc
- IDL union型のタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_union_tc( const char* id, const char* name, CORBA::TypeCode_ptr discriminator_type, const CORBA::UnionMemberSeq& members, CORBA::Environment& env = Ob_default_environment() );
create_union_tcを用いると共用体を表すTypeCode擬似オブジェクトを作成できます。
idにはリポジトリIDを指定します。リポジトリIDとは、IDL型を識別するための識別子で、IDLで定義した型のリポジトリIDはIDLコンパイラによってつけられます。IDL union型のリポジトリIDはインタフェースリポジトリのid関数によって得ることができます。
nameにはIDL union型の型名を指定します。
discriminator_typeにはIDL unionの判別子の型を表すタイプコードを指定します。
IDLシンタックスに基づき、discriminator_typeに指定できるタイプコードは、kindがtk_short, tk_ushort, tk_long, tk_ulong, tk_boolean, tk_char, tk_enumのものだけです。それ以外のタイプコードを指定したときの動作は保証しません。
membersにはIDL union型のメンバの情報を指定します。
IDL union型のメンバの情報はCORBA::UnionMember構造体のシーケンスで表します。CORBA::UnionMember構造体は以下のように定義されています。
struct CORBA::UnionMember { CORBA::String_var name; // IDL unionのメンバ名 CORBA::Any label; // IDL unionのメンバのラベル CORBA::TypeCode_var type; // IDL unionのメンバ型 CORBA::IDLType_var type_def; // create_union_tcでは使用しない };
(例)
// IDL union T switch (long) { case 0: short l; case 1: string s; }; // C++ CORBA::Environment env; CORBA::ORB_var orb = CORBA::ORB_init(...); ... CORBA::Repository_var ir = ...; // インタフェースリポジトリ CORBA::RepositoryId id = ...; // メンバ情報を組み立てる CORBA::UnionMember members[2]; CORBA::UnionMemberSeq mseq(2, 2, members); // 判別子のタイプコードを得る CORBA::PrimitiveDef_var d_pd = ir->get_primitive(CORBA::pk_long, env); CORBA::TypeCode_var d_tc = lpd->type(env); // メンバlのcaseラベル情報を作る CORBA::Any_var llavel; llavel <<=(CORBA::Long)0; // メンバlのタイプコードを得る CORBA::PrimitiveDef_var lpd = ir->get_primitive(CORBA::pk_long, env); CORBA::TypeCode_var ltc = lpd->type(env); // メンバlの情報を組み立てる members[0] = {(const char*)"l", llavel, ltc, 0}; // メンバsのcaseラベル情報を作る CORBA::Any_var slavel; slavel <<=(CORBA::Long)1; // メンバsのタイプコードを得る CORBA::PrimitiveDef_var spd = ir->get_primitive(CORBA::pk_string, env); CORBA::TypeCode_var stc = spd->type(env); // メンバsの情報を組み立てる members[1] = {(const char*)"s", slavel, stc, 0}; // union Tのタイプコードを生成する CORBA::TypeCode_var tc = orb->create_union_tc(id, "T", d_tc, mseq, env);
共用体を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
TypeCodeインタフェース, IDL any型, インタフェースリポジトリ
CORBA::ORB::create_enum_tc
- IDL enum型のタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_enum_tc( const char* id, const char* name, const CORBA::EnumMemberSeq& members, CORBA::Environment& env = Ob_default_environment() );
列挙型を表すタイプコードを作成します。
idにはリポジトリIDを指定します。リポジトリIDとは、IDL型を識別するための識別子で、IDLで定義した型のリポジトリIDはIDLコンパイラによってつけられます。IDL enum型のリポジトリIDはインタフェースリポジトリのid関数によって得ることができます。
nameにはIDL enum型の型名を指定します。
membersは列挙型を構成するメンバを表す文字列のシーケンスです。
列挙型を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_alias_tc
- IDL typedef型のタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_alias_tc( const char* id, const char* name, CORBA::TypeCode_ptr original_type, CORBA::Environment& env = Ob_default_environment() );
typedefされた型を表すタイプコードを作成できます。
IDL typedef型のタイプコードを作成します。
idにはリポジトリIDを指定します。リポジトリIDとは、IDL型を識別するための識別子で、IDLで定義した型のリポジトリIDはIDLコンパイラによってつけられます。IDL typedef型のリポジトリIDはインタフェースリポジトリのid関数によって得ることができます。
nameには、作成するtypedefされた型の名前を指定します。
original_typeはtypedefされた型の元の型を表すタイプコードです。
typedefされた型を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_exception_tc
- IDL exceptionのタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_exception_tc( const char* id, const char* name, const CORBA::StructMemberSeq& members, CORBA::Environment& env = Ob_default_environment() );
例外を表すタイプコードを作成します。
idにはリポジトリIDを指定します。リポジトリIDとは、IDL型を識別するための識別子で、IDLで定義した型のリポジトリIDはIDLコンパイラによってつけられます。
nameにはIDL exception型の型名を指定します。
membersにはIDL exception型のメンバの情報を指定します。
IDL exception型のメンバの情報はCORBA::StructMember構造体のシーケンスで表します。CORBA::StructMember構造体は以下のように定義されています。
struct CORBA::StructMember { CORBA::String_var name; // IDL exceptionのメンバ名 CORBA::TypeCode_var type; // IDL exceptionのメンバ型 CORBA::IDLType_var type_def; // create_exception_tcでは使用しない };
例外を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_interface_tc
- IDL interfaceのタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_interface_tc( const char* id, const char* name, CORBA::Environment& env = Ob_default_environment() );
インタフェースを表すタイプコードを作成できます。
idにはリポジトリIDを指定します。リポジトリIDとは、IDL型を識別するための識別子で、IDLで定義した型のリポジトリIDはIDLコンパイラによってつけられます。IDL interface型のリポジトリIDはインタフェースリポジトリのid関数によって得ることができます。
nameにはインタフェース名を指定します。
インタフェースを表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_string_tc
- IDL string型のタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_string_tc( CORBA::ULong bound, CORBA::Environment& env = Ob_default_environment() );
文字列を表すタイプコードを作成します。
boundには、固定長文字列の限界長を指定します。boundに0を指定したときは可変長文字列をあらわします。また、可変長文字列のタイプコードはget_primitive_tcでも得られます。
文字列を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_wstring_tc
- IDL wstring型のタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_wstring_tc( CORBA::ULong bound, CORBA::Environment& env = Ob_default_environment() );
ワイド文字列を表すタイプコードを作成します。
boundには、固定長文字列の限界長を指定します。boundに0を指定したときは可変長文字列をあらわします。また、可変長文字列のタイプコードはget_primitive_tcでも得られます。
ワイド文字列を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_sequence_tc
- IDL sequence型のタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_sequence_tc( CORBA::ULong bound, CORBA::TypeCode_ptr element_type, CORBA::Environment& env = Ob_default_environment() );
シーケンスを表すタイプコードを作成します。
boundは作成するシーケンスの長さを示します。boundが0だと可変長、正の数だと固定長になります。
element_typeは作成するシーケンスの型を表すタイプコードです。
シーケンスを表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_recursive_sequence_tc
- リカーシブシーケンスを表すタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_recursive_sequence_tc( CORBA::ULong bound, CORBA::ULong offset, CORBA::Environment& env = Ob_default_environment() );
リカーシブシーケンスを表すタイプコードを作成します。
Object Brokerでは実装されていません。
常に0が返ります。
常にCORBA::NO_IMPLEMENT例外がthrowされます。
CORBA::ORB::create_array_tc
- IDL 配列型のタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_array_tc( CORBA::ULong length, CORBA::TypeCode_ptr element_type, CORBA::Environment& env = Ob_default_environment() );
配列を表すタイプコードを作成します。
lengthは作成する配列の長さを示します。
element_typeは作成する配列の型を示すタイプコードです。
配列を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_fixed_tc
- IDL fixed型のタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_fixed_tc( CORBA::UShort digits, CORBA::Short scale, CORBA::Environment& env = Ob_default_environment() );
IDL fixed型を表すタイプコードを作成します。
digitsは全体の桁数を示します。
scaleは小数点の位置を示します。
fixed型を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_value_tc
- IDL valuetype型のタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_value_tc( const char* id, const char* name, CORBA::UShort type_modifier, CORBA::TypeCode_ptr concrete_base, const CORBA::ValueMemberSeq& members, CORBA::Environment& env = Ob_default_environment() );
IDL valuetype型を表すタイプコードを作成します。
idは、リポジトリIDを指定します。リポジトリIDとは、IDL型を識別するための識別子で、 IDLで定義した型のリポジトリIDはIDLコンパイラによってつけられます。
nameはvaluetype名を指定します。
type_modifierはvaluetypeの修飾子を指定します。
指定できる値は以下の通りです。
CORBA::VM_NONE | 指定なし |
CORBA::VM_CUSTOM | custom指定あり |
CORBA::VM_ABSTRACT | abstract指定あり |
CORBA::VM_TRUNCATABLE | truncatable指定あり |
concrete_baseは基底型のvaluetypeのTypeCodeを指定します。
membersはvaluetypeのメンバを表すValueMember構造体のシーケンスを指定します。
IDL valuetype型を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_value_box_tc
- IDL valuetype型(boxed valuetype)のタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_value_box_tc( const char* id, const char* name, CORBA::TypeCode_ptr boxed_type, CORBA::Environment& env = Ob_default_environment() );
IDL valuetype型(boxed valuetype)を表すタイプコードを作成します。
idは、リポジトリIDを指定します。リポジトリIDとは、IDL型を識別するための識別子で、 IDLで定義した型のリポジトリIDはIDLコンパイラによってつけられます。
nameはvaluetype名を指定します。
boxed_typeは保持する値の型を表すTypeCodeを指定します。
IDL valuetype型(boxed valuetype)を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_native_tc
- IDL native型のタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_native_tc( const char* id, const char* name, CORBA::Environment& env = Ob_default_environment() );
IDL native型を表すタイプコードを作成できます。
idにはリポジトリIDを指定します。リポジトリIDとは、IDL型を識別するための識別子で、IDLで定義した型のリポジトリIDは IDLコンパイラによってつけられます。
nameにはインタフェース名を指定します。
IDL native型を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_abstract_interface_tc
- IDL abstract interfaceを表すタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_abstract_interface_tc( const char* id, const char* name, CORBA::Environment& env = Ob_default_environment() );
IDL abstract interfaceを表すタイプコードを作成できます。
idにはリポジトリIDを指定します。リポジトリIDとは、IDL型を識別するための識別子で、IDLで定義した型のリポジトリIDは IDLコンパイラによってつけられます。
nameにはインタフェース名を指定します。
IDL abstract interfaceを表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::create_recursive_tc
- 再帰的に使用される型を表すタイプコードを作成する
#include <orb.h> CORBA::TypeCode_ptr CORBA::ORB::create_recursive_tc( const char* id, CORBA::Environment& env = Ob_default_environment() );
再帰的に使用される型を表すタイプコードを作成できます。
idには、再帰的に使用される型のリポジトリIDを指定します。
再帰的に使用される型を表すタイプコードが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__get_tsident
- TSIdentification擬似オブジェクトを取得する
#include <orb.h> CORBA::TSIdentification_ptr CORBA::ORB::__get_tsident( CORBA::Environment& env = Ob_default_environment() );
__get_tsidentを用いるとCORBA::TSIdentification擬似オブジェクトが取得できます。CORBA::TSIdentification擬似オブジェクトはCosTSPortability::SenderおよびCosTSPortability::Receiver擬似オブジェクトをORBライブラリに通知するために使われます。
CORBA::TSIdentification擬似オブジェクトが返ります。
CORBA標準例外がthrowされます。
CosTSPortability::Sender::sending_request,
CosTSPortability::Sender::received_reply,
CosTSPortability::Receiver::received_request,
CosTSPortability::Receiver::sending_reply
CORBA::ORB::__server_path_name - サーバパス名設定値を取り出す
#include <orb.h> char* CORBA::ORB::__server_path_name( CORBA::Environment& env = Ob_default_environment() );
現在設定されているサーバプログラムの実行ファイルパス名を返します。
現在設定されているサーバプログラム実行ファイルパス名が返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_path_name(const char*)
CORBA::ORB::__server_path_name(const char*) - サーバパス名を設定する
#include <orb.h> void CORBA::ORB::__server_path_name( const char* path_name, CORBA::Environment& env = Ob_default_environment() );
オブジェクトに含まれるサーバ情報のうち、サーバプログラムの実行ファイルパス名を設定します。
設定する場合は、CORBA::ORB::resolve_initial_referencesメソッドでルートPOAを取得する前に行ってください。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_path_name
CORBA::ORB::__implementation_name
- インプリメンテーション名設定値を取り出す
#include <orb.h> char* CORBA::ORB::__implementation_name( CORBA::Environment& env = Ob_default_environment() );
現在設定されているサーバのインプリメンテーション名を返します。
現在設定されているインプリメンテーション名が返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__implementation_name(const char*)
CORBA::ORB::__implementation_name(const char*)
- インプリメンテーション名を設定する
#include <orb.h> void CORBA::ORB::__implementation_name( const char* impl_name, CORBA::Environment& env = Ob_default_environment() );
オブジェクトに含まれるサーバ情報のうち、インプリメンテーション名を設定します。
設定する場合は、CORBA::ORB::resolve_initial_referencesメソッドでルートPOAを取得する前に行ってください。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__implementation_name
CORBA::ORB::__server_port - サーバポート番号設定値を取り出す
#include <orb.h> CORBA::UShort CORBA::ORB::__server_port( CORBA::Environment& env = Ob_default_environment() );
現在設定されているサーバポート番号を返します。
現在設定されているサーバポート番号が返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_port(CORBA::UShort)
CORBA::ORB::__server_port(CORBA::UShort) - サーバポート番号を設定する
#include <orb.h> void CORBA::ORB::__server_port( CORBA::UShort port, CORBA::Environment& env = Ob_default_environment() );
オブジェクトに含まれるサーバ情報のうち、ポート番号を設定します。
設定する場合は、CORBA::ORB::resolve_initial_referencesメソッドでルートPOAを取得する前に行ってください。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_activation_policy - 活性化方針設定値を取り出す
#include <orb.h> Obi::ActPolicyType CORBA::ORB::__server_activation_policy( CORBA::Environment& env = Ob_default_environment() );
現在設定されているサーバプログラムの活性化方針を返します。活性化方針としては、下記の種類があります。
Obi::SharedServer | 共有サーバ |
Obi::UnsharedServer | 非共有サーバ |
Obi::PersistentServer | 永続サーバ |
Obi::ServerPerMethod | メソッドごとのサーバ |
現在設定されている活性化方針が返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_activation_policy(Obi::ActPolicyType)
CORBA::ORB::__server_activation_policy(Obi::ActPolicyType)
- 活性化方針を設定する
#include <orb.h> void CORBA::ORB::__server_activation_policy( Obi::ActPolicyType pol, CORBA::Environment& env = Ob_default_environment() );
オブジェクトに含まれるサーバ情報のうち、サーバプログラムの活性化方針を設定します。活性化方針(pol)としては、下記のいずれかを指定します。
Obi::SharedServer | 共有サーバ |
Obi::UnsharedServer | 非共有サーバ |
Obi::PersistentServer | 永続サーバ |
Obi::ServerPerMethod | メソッドごとのサーバ |
設定する場合は、CORBA::ORB::resolve_initial_referencesメソッドでルートPOAを取得する前に行ってください。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_activation_policy
CORBA::ORB::__server_hostname - サーバホスト名設定値を取り出す
#include <orb.h> char* CORBA::ORB::__server_hostname( CORBA::Environment& env = Ob_default_environment() );
現在設定されているサーバホスト名設定値を返します。
サーバホスト名設定値が返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_hostname(const char*)
CORBA::ORB::__server_hostname(const char*)
- サーバホスト名を設定する
#include <orb.h> void CORBA::ORB::__server_hostname( const char* host_name, CORBA::Environment& env = Ob_default_environment() );
オブジェクトに含まれるサーバ情報のうち、サーバホスト名を設定します。
設定する場合は、CORBA::ORB::resolve_initial_referencesメソッドでルートPOAを取得する前に行ってください。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__process_request_timeout
- 呼び出しタイムアウトの設定値を取り出す(プロセス単位)
#include <orb.h> CORBA::ULong CORBA::ORB::__process_request_timeout( CORBA::Environment& env = Ob_default_environment() );
現在のプロセス単位のメソッド呼び出しと応答にかかる最大待ち時間(秒)の設定値を返します。
プロセス単位のメソッド呼び出しと応答にかかる最大待ち時間が返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__process_request_timeout(CORBA::ULong)
CORBA::ORB::__process_request_timeout(CORBA::ULong)
- 呼び出しタイムアウト値を設定する(プロセス単位)
#include <orb.h> void CORBA::ORB::__process_request_timeout( CORBA::ULong timeout, CORBA::Environment& env = Ob_default_environment() );
プロセス単位のメソッド呼び出しと応答にかかる最大待ち時間(秒)を正の整数値で設定します。0を設定すると、応答が返るまで待ち続けます。
__process_request_timeoutの設定は
条件を満たすときのみ有効です。
呼び出しのタイムアウトに関する優先順位は以下のとおりです。
__request_timeout > __process_request_timeout > RequestTimeout(設定)
設定値はより優先度の高い方法で再度変更することができます。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__process_request_timeout
CORBA::ORB::__request_timeout
- 呼び出しタイムアウトの設定値を取り出す(スレッド単位)
#include <orb.h> CORBA::ULong CORBA::ORB::__request_timeout( CORBA::Environment& env = Ob_default_environment() );
現在のスレッド単位のメソッド呼び出しと応答にかかる最大待ち時間(秒)の設定値を返します。
スレッド単位のメソッド呼び出しと応答にかかる最大待ち時間が返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__request_timeout(CORBA::ULong)
CORBA::ORB::__request_timeout(CORBA::ULong)
- 呼び出しタイムアウト値を設定する(スレッド単位)
#include <orb.h> void CORBA::ORB::__request_timeout( CORBA::ULong timeout, CORBA::Environment& env = Ob_default_environment() );
スレッド単位のメソッド呼び出しと応答にかかる最大待ち時間(秒)を正の整数値で設定します。0を設定すると、応答が返るまで待ち続けます。
呼び出しのタイムアウトに関する優先順位は以下のとおりです。
__request_timeout > __process_request_timeout > RequestTimeout(設定)
設定値はより優先度の高い方法で再度変更することができます。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__reuse_socket - ソケット再利用設定値を取り出す
#include <orb.h> CORBA::Boolean CORBA::ORB::__reuse_socket( CORBA::Environment& env = Ob_default_environment() );
現在のソケット再利用に関する設定値を返します。戻り値が1であれば、同一サーバプロセスに対して過去に呼び出しに使われたソケットが再利用されます。
現在のソケット再利用に関する設定値が返ります。
1 : ソケットを再利用する
0 : ソケットを再利用しない
CORBA標準例外がthrowされます。
CORBA::ORB::__reuse_socket(CORBA::Boolean)
CORBA::ORB::__reuse_socket(CORBA::Boolean)
- ソケット再利用に関する設定をする
#include <orb.h> void CORBA::ORB::__reuse_socket( CORBA::Boolean reuse_socket, CORBA::Environment& env = Ob_default_environment() );
ソケット再利用に関する設定を行います。reuse_socketには下記のいずれかの値を設定します。
1 : ソケットを再利用する
0 : ソケットを再利用しない
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_argument
- サーバプロセス自動起動時の引数設定値を取り出す
#include <orb.h> CORBA::ORB::arg_list* CORBA::ORB::__server_argument( CORBA::Environment& env = Ob_default_environment() );
スケルトンクラスのコンストラクタを用いた暗黙のオブジェクト生成で使われるサーバ情報のうち、サーバ起動時引数の設定値を返します。サーバ起動時引数の設定値はCORBA::String型のシーケンスです。
スケルトンクラスのクラス名はIDL定義によって変化します。
// IDL interface Foo{...}; // C++ class POA_Foo{...}; // IDL module M{ interface Foo{...}; }; // C++ class POA_M::Foo{...};
起動時引数の設定値が返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_argument(const CORBA::ORB::arg_list&)
CORBA::ORB::__server_argument(const CORBA::ORB::arg_list&)
- サーバプロセス自動起動時の引数を設定する
#include <orb.h> void CORBA::ORB::__server_argument( const CORBA::ORB::arg_list& arg_list, CORBA::Environment& env = Ob_default_environment() );
スケルトンクラスのコンストラクタを用いた暗黙のオブジェクト生成で使われるサーバ情報のうち、サーバ起動時引数を設定します。サーバ自動起動時引数の設定値はCORBA::String型のシーケンスをarg_listに設定します。
スケルトンクラスのクラス名はIDL定義によって変化します。
// IDL interface Foo{...}; // C++ class POA_Foo{...}; // IDL module M{ interface Foo{...}; }; // C++ class POA_M::Foo{...};
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_argument_index
- 自動起動情報引数の位置設定を取り出す
#include <orb.h> CORBA::ULong CORBA::ORB::__server_argument_index( CORBA::Environment& env = Ob_default_environment() );
スケルトンクラスのコンストラクタを用いた暗黙のオブジェクト生成で使われるサーバ情報のうち、ORBが活性化情報を渡すのに使う引数の位置の設定値を返します。
スケルトンクラスのクラス名はIDL定義によって変化します。
// IDL interface Foo{...}; // C++ class POA_Foo{...}; // IDL module M{ interface Foo{...}; }; // C++ class POA_M::Foo{...};
起動時引数の設定値が返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_argument_index(CORBA::ULong)
CORBA::ORB::__server_argument_index(CORBA::ULong)
- 自動起動情報引数の位置を設定する
#include <orb.h> void CORBA::ORB::__server_argument_index( CORBA::ULong arg_index, CORBA::Environment& env = Ob_default_environment() );
スケルトンクラスのコンストラクタを用いた暗黙のオブジェクト生成で使われるサーバ情報のうち、ORBが活性化情報を渡すのに使う引数の位置を設定します。
スケルトンクラスのクラス名はIDL定義によって変化します。
// IDL interface Foo{...}; // C++ class POA_Foo{...}; // IDL module M{ interface Foo{...}; }; // C++ class POA_M::Foo{...};
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_argument_index
CORBA::ORB::__use_IR - インタフェースリポジトリ利用に関する設定値を取り出す
#include <orb.h> CORBA::Boolean CORBA::ORB::__use_IR( CORBA::Environment& env = Ob_default_environment() );
インタフェースリポジトリ使用に関する設定値を返します。戻り値が1であれば、CORBA::Object::_get_interfaceはインタフェースリポジトリ内のCORBA::InterfaceDefオブジェクトを返します。0であれば擬似オブジェクトを返します。
現在のインタフェースリポジトリ利用に関する設定値が返ります。
1 : インタフェースリポジトリを利用する
0 : インタフェースリポジトリを利用しない
CORBA標準例外がthrowされます。
CORBA::ORB::__use_IR(CORBA::Boolean),
CORBA::ORB::__use_IR(CORBA::Boolean)
- インタフェースリポジトリ利用に関する情報を設定する
#include <orb.h> void CORBA::ORB::__use_IR( CORBA::Boolean use_ir, CORBA::Environment& env = Ob_default_environment() );
インタフェースリポジトリ利用に関する設定を行います。use_irには以下のいずれかの値を設定します。
1 : インタフェースリポジトリを利用する
0 : インタフェースリポジトリを利用しない
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_request_timeout
- サーバでのリクエストタイムアウト値を取り出す
#include <orb.h> CORBA::ULong CORBA::ORB::__server_request_timeout( CORBA::Environment& env = Ob_default_environment() );
イベント処理でクライアントからのリクエストを待ち、応答を送り終えるまでの最大待ち時間(秒)の現在設定値を取り出します。
クライアントからのリクエストを待ち、応答を送り終えるまでの最大待ち時間の現在値が返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_request_timeout(CORBA::ULong)
CORBA::ORB::__server_request_timeout(CORBA::ULong)
- サーバでのリクエストタイムアウト値を設定する
#include <orb.h> void CORBA::ORB::__server_request_timeout( CORBA::ULong tmo, CORBA::Environment& env = Ob_default_environment() );
クライアントからのリクエストを待ち、応答を送り終えるまでの最大待ち時間をtmoで指定した秒数に設定します。tmoは正の整数です。0を設定するとクライアントからのリクエストを受信し、応答の送信が終わるまで待ち続けます。設定した値はプロセス単位で有効になります。
サーバでのリクエストタイムアウトに関する優先順位は以下のとおりです。
__server_request_timeout > ServerRequestTimeout(設定)
ServerRequestTimeout(設定)で変更したタイムアウト値は、__server_request_timeoutを用いて再度変更することができます。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_request_timeout
CORBA::ORB::__server_thread_policy
- スレッド処理方針を得る
#include <orb.h> Ob_ThreadPolicy CORBA::ORB::__server_thread_policy( CORBA::Environment& env = Ob_default_environment() );
このサーバプロセスのスレッド処理方針を得ます。スレッド処理方針を表わすOb_ThreadPolicyは以下のような列挙値です。
enum Ob_ThreadPolicy { Ob_thr_default, // スレッドを使わない(デフォルト) Ob_thr_pool, // あらかじめ固定の数のプールスレッドを作成して // ラウンドロビンで処理する Ob_thr_permethod // 処理ごとにスレッドを作成して処理する。 };
このサーバプロセスのスレッド処理方針が返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_thread_policy(Ob_ThreadPolicy)
CORBA::ORB::__server_thread_policy(Ob_ThreadPolicy)
- スレッド処理方針を設定する
#include <orb.h> void CORBA::ORB::__server_thread_policy( Ob_ThreadPolicy pol, CORBA::Environment& env = Ob_default_environment() );
このサーバプロセスのスレッド処理方針をpolに変更します。スレッド処理方針を表わすOb_ThreadPolicyは以下のような列挙値です。
enum Ob_ThreadPolicy { Ob_thr_default, // スレッドを使わない(デフォルト) Ob_thr_pool, // あらかじめ固定の数のプールスレッドを作成して // ラウンドロビンで処理する Ob_thr_permethod // 処理ごとにスレッドを作成して処理する };
サーバプロセスのスレッド処理方針を設定する場合は、CORBA::ORB::runメソッドおよびCORBA::ORB::work_pendingメソッドを呼び出す前に行ってください。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_thread_policy
CORBA::ORB::__server_thread_number
- プールスレッド数を得る
#include <orb.h> CORBA::ULong CORBA::ORB::__server_thread_number( CORBA::Environment& env = Ob_default_environment() );
このサーバプロセスの現在のプールスレッド数設定値を得ます。
現在のプールスレッド数設定値が返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_thread_number(CORBA::ULong)
CORBA::ORB::__server_thread_number(CORBA::ULong)
- プールスレッド数を設定する
#include <orb.h> void CORBA::ORB::__server_thread_number( CORBA::ULong tnum, CORBA::Environment& env = Ob_default_environment() );
このサーバプロセスのプールスレッド数をtnumに変更します。プールスレッドは、サーバプロセスのスレッド処理方針がOb_thr_poolのときだけ生成されます。それ以外の方針の場合は無視されます。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__server_thread_number
CORBA::ORB::__native_code_set
- string型のネイティブコードセットの設定値を取り出す
#include <orb.h> char* CORBA::ORB::__native_code_set( CORBA::Environment& env = Ob_default_environment() );
IDLのstring型で使用されるネイティブコードセットの設定値を返します。
ネイティブコードセットが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__native_code_set(const char*)
コードセットを使用するためには、GIOPおよびIIOPのバージョンを1.1以上に設定する必要があります。詳しくは、 [ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.10. Object Broker > 1.10.3. WebOTX Object Broker C++ における環境設定 ] の表1.10.3.1-8を参照してください。
CORBA::ORB::__native_code_set(const char*)
- string型のネイティブコードセットを設定する
#include <orb.h> void CORBA::ORB::__native_code_set( const char* csid, CORBA::Environment& env = Ob_default_environment() );
IDLのstring型で使用されるネイティブコードセットを設定します。
__native_code_set関数で指定した値は、環境変数などによる設定より優先されます。
Object Brokerで利用可能なコードセットは以下のとおりです。
設定名(string) | 説明 |
---|---|
OSF_SJIS1 | OSF Japanese SJIS-1 |
JIS_eucJP | JIS eucJP:1993; Japanese EUC |
ISO8859_1 | ISO 8859-1:1987; Latin Alphabet No. 1 |
ISO646 | 1991 IRV (International Reference Version) |
ありません。
CORBA標準例外がthrowされます。
設定はCORBA::ORB_init関数呼び出し直後に行ってください。途中で変更した場合の動作は不定です。
設定はプロセス単位で有効です。スレッド毎に変更することはできません。
文字列は大文字小文字を区別します。また、不正な文字を指定した場合は無視されます。
コードセットを使用するためには、GIOPおよびIIOPのバージョンを1.1以上に設定する必要があります。詳しくは、 [ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.10. Object Broker > 1.10.3. WebOTX Object Broker C++ における環境設定 ] の表1.10.3.1-8を参照してください。
CORBA::ORB::__native_code_set_w
- wchar/wstring型のネイティブコードセットの設定値を取り出す
#include <orb.h> char* CORBA::ORB::__native_code_set_w( CORBA::Environment& env = Ob_default_environment() );
IDLのwchar, wstring型で使用されるネイティブコードセットの設定値を返します。
ネイティブコードセットが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__native_code_set_w(const char*)
コードセットを使用するためには、GIOPおよびIIOPのバージョンを1.1以上に設定する必要があります。詳しくは、 [ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.10. Object Broker > 1.10.3. WebOTX Object Broker C++ における環境設定 ] の表1.10.3.1-8を参照してください。
CORBA::ORB::__native_code_set_w(const char*)
- wchar/wstring型のネイティブコードセットを設定する
#include <orb.h> void CORBA::ORB::__native_code_set_w( const char* csid, CORBA::Environment& env = Ob_default_environment() );
IDLのwchar, wstring型で使用されるネイティブコードセットを設定します。
__native_code_set_w関数で指定した値は、環境変数などによる設定より優先されます。
Object Brokerで利用可能なコードセットは以下のとおりです。
設定名(wchar/wstring) | 説明 |
---|---|
UCS2_LEVEL1 | ISO/IEC 10646-1:1993; UCS2, Level 1 |
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__native_code_set_w
設定はCORBA::ORB_init関数呼び出し直後に行ってください。途中で変更した場合の動作は不定です。
設定はプロセス単位で有効です。スレッド毎に変更することはできません。
文字列は大文字小文字を区別します。また、不正な文字を指定した場合は無視されます。
コードセットを使用するためには、GIOPおよびIIOPのバージョンを1.1以上に設定する必要があります。詳しくは、 [ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.10. Object Broker > 1.10.3. WebOTX Object Broker C++ における環境設定 ] の表1.10.3.1-8を参照してください。
CORBA::ORB::__conversion_code_sets
- string型のコンバージョンコードセットの設定値を取り出す
#include <orb.h> Ob_StringSeq* CORBA::ORB::__conversion_code_sets( CORBA::Environment& env = Ob_default_environment() );
IDLのstring型で使用されるコンバージョンコードセットの設定値を返します。
コンバージョンコードセットの文字列シーケンスが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__conversion_code_sets(const Ob_StringSeq&)
コードセットを使用するためには、GIOPおよびIIOPのバージョンを1.1以上に設定する必要があります。詳しくは、 [ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.10. Object Broker > 1.10.3. WebOTX Object Broker C++ における環境設定 ] の表1.10.3.1-8を参照してください。
CORBA::ORB::__conversion_code_sets(const Ob_StringSeq&)
- string型のコンバージョンコードセットを設定する
#include <orb.h> void CORBA::ORB::__conversion_code_sets( const Ob_StringSeq& csid, CORBA::Environment& env = Ob_default_environment() );
IDLのstring型で使用されるコンバージョンコードセットを設定します。
__conversion_code_sets関数で指定した値は、環境変数などによる設定より優先されます。
コンバージョンコードセットは文字列シーケンスで表されます。
Object Brokerで利用可能なコードセットは以下のとおりです。
設定名(string) | 説明 |
---|---|
OSF_SJIS1 | OSF Japanese SJIS-1 |
JIS_eucJP | JIS eucJP:1993; Japanese EUC |
ISO8859_1 | ISO 8859-1:1987; Latin Alphabet No. 1 |
ISO646 | 1991 IRV (International Reference Version) |
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__conversion_code_sets
設定はCORBA::ORB_init関数呼び出し直後に行ってください。途中で変更した場合の動作は不定です。
設定はプロセス単位で有効です。スレッド毎に変更することはできません。
文字列は大文字小文字を区別します。また、不正な文字を指定した場合は無視されます。
コードセットを示す文字列シーケンスに、重複した文字列を設定してはいけません。
コードセットを使用するためには、GIOPおよびIIOPのバージョンを1.1以上に設定する必要があります。詳しくは、 [ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.10. Object Broker > 1.10.3. WebOTX Object Broker C++ における環境設定 ] の表1.10.3.1-8を参照してください。
CORBA::ORB::__conversion_code_sets_w
- wchar/wstring型のコンバージョンコードセットの設定値を取り出す
#include <orb.h> Ob_StringSeq* CORBA::ORB::__conversion_code_sets_w( CORBA::Environment& env = Ob_default_environment() );
IDLのwchar, wstring型で使用されるコンバージョンコードセットの設定値を返します。
コンバージョンコードセットの文字列シーケンスが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__conversion_code_sets_w(const Ob_StringSeq&)
コードセットを使用するためには、GIOPおよびIIOPのバージョンを1.1以上に設定する必要があります。詳しくは、 [ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.10. Object Broker > 1.10.3. WebOTX Object Broker C++ における環境設定 ] の表1.10.3.1-8を参照してください。
CORBA::ORB::__conversion_code_sets_w(const Ob_StringSeq&)
- wchar/wstring型のコンバージョンコードセットを設定する
#include <orb.h> void CORBA::ORB::__conversion_code_sets_w( const Ob_StringSeq& csid, CORBA::Environment& env = Ob_default_environment() );
IDLのwchar, wstring型で使用されるコンバージョンコードセットを設定します。
__conversion_code_sets_w関数で指定した値は、環境変数などによる設定より優先されます。
コンバージョンコードセットは文字列シーケンスで表されます。
Object Brokerで利用可能なコードセットは以下のとおりです。
設定名(wchar/wstring) | 説明 |
---|---|
UTF16 | ISO/IEC 10646-1:1993; UTF-16, UCS Transformation Format 16-bit form |
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__conversion_code_sets_w
設定はCORBA::ORB_init関数呼び出し直後に行ってください。途中で変更した場合の動作は不定です。
設定はプロセス単位で有効です。スレッド毎に変更することはできません。
文字列は大文字小文字を区別します。また、不正な文字を指定した場合は無視されます。
コードセットを使用するためには、GIOPおよびIIOPのバージョンを1.1以上に設定する必要があります。詳しくは、 [ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.10. Object Broker > 1.10.3. WebOTX Object Broker C++ における環境設定 ] の表1.10.3.1-8を参照してください。
CORBA::ORB::__set_connection_reuse_policy(CORBA::Object_ptr,const char*)
- コネクション制御ポリシーを設定したIORを持つリファレンスを新規に作成する
#include <orb.h> CORBA::Object_ptr CORBA::ORB::__set_connection_reuse_policy( CORBA::Object_ptr obj, const char* ConnectionReusePolicy );
引数で指定されたリファレンスのIORに、TaggedComponentにコネクション制御ポリシーを設定したIORを持つリファレンスを新規に作成します。既に設定済みの場合は、TaggedComponentの値を更新したIORを持つリファレンスを新規に作成します。
objには、設定元となるIORをもつリファレンスを指定します。
ConnectionReusePolicyには下記のいずれかの値(文字列)を設定します。
"ByHost"(既定値) : 同一ホストに対するコネクションを再利用する。コネクションが切断されるまでは同一のホストへ送信する。
"ByReference" : リファレンス単位にコネクションを再利用する。
"NoReuse" : コネクションを再利用しない。オペレーション呼び出し毎にコネクションを接続する。
コネクション制御ポリシーを設定したリファレンスが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::__set_connection_reuse_policy(IOP_IOR&,const char*)
CORBA::ORB::__set_connection_reuse_policy(IOP_IOR&,const char*)
- IORにコネクション制御ポリシーを設定する
#include <orb.h> void CORBA::ORB::__set_connection_reuse_policy( IOP_IOR& Reference, const char* ConnectionReusePolicy );
引数で指定されたIORに、TaggedComponentにコネクション制御ポリシーを設定します。既に設定済みの場合は、その値を更新します。
Referenceには、設定元となるIORを指定します。
ConnectionReusePolicyには下記のいずれかの値(文字列)を設定します。
"ByHost"(既定値) : 同一ホストに対するコネクションを再利用する。コネクションが切断されるまでは同一のホストへ送信する。
"ByReference" : リファレンス単位にコネクションを再利用する。
"NoReuse" : コネクションを再利用しない。オペレーション呼び出し毎にコネクションを接続する。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::__set_connection_reuse_policy(CORBA::Object_ptr,const char*)
CORBA::ORB::register_value_factory
- ValueFactoryを登録する
#include <orb.h> CORBA::ValueFactory CORBA::ORB::register_value_factory( const char* id, CORBA::ValueFactory factory, CORBA::Environment& env = Ob_default_environment() );
引数factoryで指定したValueFactoryをORBに登録します。
idには、受信するvaluetypeのリポジトリIDを指定します。
引数idのリポジトリIDと引数factoryのValueFactoryが関連付けられます。
同じリポジトリIDのValueFactoryが既に登録済みの場合は、ValueFactoryを更新します。
ValueFactoryが更新された場合、以前登録されていたValueFactoryが返ります。登録されていなかった場合は、NULLポインタが返ります。
CORBA標準例外がthrowされます。
CORBA::ORB::unregister_value_factory
CORBA::ORB::lookup_value_factory
CORBA::ORB::unregister_value_factory
- ValueFactoryの登録を削除する
#include <orb.h> void CORBA::ORB::unregister_value_factory( const char* id, CORBA::Environment& env = Ob_default_environment() );
引数idで指定したリポジトリIDと関連付けられたValueFactoryの登録を削除します。
指定したリポジトリIDのValueFactoryが登録されていない場合、CORBA::BAD_PARAM(minor:1315)がthrowされます。
ありません。
CORBA標準例外がthrowされます。
CORBA::ORB::register_value_factory
CORBA::ORB::lookup_value_factory
CORBA::ORB::lookup_value_factory
- 登録されているValueFactoryを検索する
#include <orb.h> CORBA::ValueFactory CORBA::ORB::lookup_value_factory( const char* id, CORBA::Environment& env = Ob_default_environment() );
引数idで指定したリポジトリIDと関連付けられたValueFactoryを検索します。
指定したリポジトリIDのValueFactoryが登録されていない場合、CORBA::BAD_PARAM(minor:1315)がthrowされます。
検索されたValueFactoryが返ります。
CORBA標準例外がthrowされます。