public abstract class ORB extends Object
ORBクラスは、ほかのベンダーのORB実装を使えるようにする「プラグイン可能なORB実装」APIも提供します。
ORBは、要求を発行する側のオブジェクト(クライアント)と要求を処理する側のオブジェクト(サーバー)を接続することによって、CORBAオブジェクト間の相互通信を可能にします。
ORBクラスはジェネリックCORBA機能をカプセル化するもので、次のような操作を行います。項目の5と6 (ORBクラスのほとんどのメソッドを含む)は、通常、Dynamic Invocation Interface (DII)とDynamic Skeleton Interface (DSI)で使用されます。これらのインタフェースは、開発者が直接使用することもできますが、通常はORBで内部的に使用されるため、一般のプログラマが見ることはありません。
resolve_initial_referencesメソッドを使って、ネーム・サービスなどのサービスへの初期オブジェクト参照を取得する
TypeCode
Any
NamedValue
Context
Environment
NVListなど)
ORBクラスを使うと、オブジェクトがネットワーク上のどこに実装されていても、その参照を取得できます。
アプリケーションやアプレットは、3つのinitメソッドの1つを使ってそれ自体をORBに対して初期化することにより、CORBA環境へのアクセスを取得します。3つのメソッドのうち2つは、次の表に記載されているプロパティ(名前と値との関連付け)を使用します。
| プロパティ名 | プロパティ値 |
|---|---|
| org.omg.CORBA.ORBClass | ORB実装のクラス名 |
| org.omg.CORBA.ORBSingletonClass | init()が返すORBのクラス名 |
これらのプロパティにより、さまざまなベンダーのORB実装がプラグイン可能になります。
ORBインスタンスの生成時には、ORB実装のクラス名が次の標準検索順で検索されます。
Java IDLはフル機能のORBと単体ORBに対してデフォルト実装を提供します。initメソッドにパラメータを指定しなかった場合は、デフォルトの単体ORBが返されます。initメソッドにパラメータを指定した場合、ORBクラスを指定しなかったときは、Java IDL ORB実装が返されます。
次に、デフォルトの単体ORBで初期化されるORBオブジェクトを作成するコードを示します。悪意のあるアプレットが型コードの作成以外の操作をできないように、このORBの実装は制限付きです。この実装は、仮想マシン全体でインスタンスが1つしかないので、単体(singleton)と呼ばれます。
ORB orb = ORB.init();
次に、アプリケーションのORBオブジェクトを作成するコードを示します。argsパラメータは、アプリケーションのmainメソッドに指定されている引数を表します。プロパティはORBクラスを「SomeORBImplementation」として指定するので、新しいORBはそのORB実装で初期化されます。pがnullでA引数がORBクラスを指定していなかった場合、新しいORBはデフォルトのJava IDL実装で初期化されます。
Properties p = new Properties();
p.put("org.omg.CORBA.ORBClass", "SomeORBImplementation");
ORB orb = ORB.init(args, p);
次に、1番目のパラメータとして指定されたアプレットのORBオブジェクトを作成するコードを示します。指定されたアプレットがORBクラスを指定していない場合は、新しいORBはデフォルトのJava IDL実装で初期化されます。
ORB orb = ORB.init(myApplet, null);
アプリケーションやアプレットは、1つ以上のORBで初期化できます。ORBでの初期化は、CORBAの世界に対するブートストラップ呼出しです。
| コンストラクタと説明 |
|---|
ORB() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void |
connect(Object obj)
指定されたサーバント・オブジェクト(サーバー実装クラスのインスタンスであるJavaオブジェクト)をORBに接続します。
|
TypeCode |
create_abstract_interface_tc(String id, String name)
IDLの抽象インタフェースの
TypeCodeオブジェクトを生成します。 |
abstract TypeCode |
create_alias_tc(String id, String name, TypeCode original_type)
IDLの
alias (typedef)を表すTypeCodeオブジェクトを生成します。 |
abstract Any |
create_any()
kindフィールドがTCKind.tc_nullに設定されたTypecodeオブジェクトを格納するように初期化された、IDLのAnyオブジェクトを生成します。 |
abstract TypeCode |
create_array_tc(int length, TypeCode element_type)
IDLの
arrayを表すTypeCodeオブジェクトを生成します。 |
DynAny |
create_basic_dyn_any(TypeCode type)
非推奨。
代わりに、新しいDynAnyFactory APIを使用してください。
|
abstract ContextList |
create_context_list()
空の
ContextListオブジェクトを作成します。 |
DynAny |
create_dyn_any(Any value)
非推奨。
代わりに、新しいDynAnyFactory APIを使用してください。
|
DynArray |
create_dyn_array(TypeCode type)
非推奨。
代わりに、新しいDynAnyFactory APIを使用してください。
|
DynEnum |
create_dyn_enum(TypeCode type)
非推奨。
代わりに、新しいDynAnyFactory APIを使用してください。
|
DynSequence |
create_dyn_sequence(TypeCode type)
非推奨。
代わりに、新しいDynAnyFactory APIを使用してください。
|
DynStruct |
create_dyn_struct(TypeCode type)
非推奨。
代わりに、新しいDynAnyFactory APIを使用してください。
|
DynUnion |
create_dyn_union(TypeCode type)
非推奨。
代わりに、新しいDynAnyFactory APIを使用してください。
|
abstract TypeCode |
create_enum_tc(String id, String name, String[] members)
IDLの
enumを表すTypeCodeオブジェクトを生成します。 |
abstract Environment |
create_environment()
Environmentオブジェクトを作成します。 |
abstract ExceptionList |
create_exception_list()
空の
ExceptionListオブジェクトを作成します。 |
abstract TypeCode |
create_exception_tc(String id, String name, StructMember[] members)
IDLの
exceptionを表すTypeCodeオブジェクトを生成します。 |
TypeCode |
create_fixed_tc(short digits, short scale)
IDL fixed型の
TypeCodeオブジェクトを生成します。 |
abstract TypeCode |
create_interface_tc(String id, String name)
IDLの
interfaceを表すTypeCodeオブジェクトを生成します。 |
abstract NVList |
create_list(int count)
指定数の
NamedValueオブジェクトにとって(おそらく)十分な空間をNVListに割り当てます。 |
abstract NamedValue |
create_named_value(String s, Any any, int flags)
指定された名前、値、引数モード・フラグを使って、
NamedValueオブジェクトを生成します。 |
TypeCode |
create_native_tc(String id, String name)
IDLネイティブ型の
TypeCodeオブジェクトを生成します。 |
NVList |
create_operation_list(Object oper)
指定された
OperationDefオブジェクトで記述される操作の引数記述で初期化された、NVListを生成します。 |
abstract OutputStream |
create_output_stream()
新しい
org.omg.CORBA.portable.OutputStreamオブジェクトを生成します。メソッド呼出し時に、このオブジェクトの内部でIDLのメソッドのパラメータを整列化できます。 |
Policy |
create_policy(int type, Any val)
指定された初期状態で特定の型のポリシー・オブジェクトのインスタンスを新規作成するために呼び出されます。
|
abstract TypeCode |
create_recursive_sequence_tc(int bound, int offset)
非推奨。
代わりにcreate_recursive_tcとcreate_sequence_tcの組み合わせを使用してください。
|
TypeCode |
create_recursive_tc(String id)
再帰を含むTypeCodeを生成する処理の際に、具象TypeCodeのプレースホルダーとして機能する再帰
TypeCodeを生成します。 |
abstract TypeCode |
create_sequence_tc(int bound, TypeCode element_type)
IDLの
sequenceを表すTypeCodeオブジェクトを生成します。 |
abstract TypeCode |
create_string_tc(int bound)
IDLのバウンド形式
stringを表すTypeCodeオブジェクトを生成します。 |
abstract TypeCode |
create_struct_tc(String id, String name, StructMember[] members)
IDLの
structを表すTypeCodeオブジェクトを生成します。 |
abstract TypeCode |
create_union_tc(String id, String name, TypeCode discriminator_type, UnionMember[] members)
IDLの
unionを表すTypeCodeオブジェクトを生成します。 |
TypeCode |
create_value_box_tc(String id, String name, TypeCode boxed_type)
IDL値ボックスの
TypeCodeオブジェクトを生成します。 |
TypeCode |
create_value_tc(String id, String name, short type_modifier, TypeCode concrete_base, ValueMember[] members)
IDL値型の
TypeCodeオブジェクトを生成します。 |
abstract TypeCode |
create_wstring_tc(int bound)
IDLのバウンド形式
wstring (ワイド文字列)を表すTypeCodeオブジェクトを生成します。 |
void |
destroy()
リソースを再使用できるようにORBを破棄します。
|
void |
disconnect(Object obj)
指定されたサーバント・オブジェクトをORBから切り離します。
|
Current |
get_current()
非推奨。
resolve_initial_referencesを使用します。 |
abstract Context |
get_default_context()
デフォルトの
Contextオブジェクトを取得します。 |
abstract Request |
get_next_response()
応答を受け取った次の
Requestのインスタンスを取得します。 |
abstract TypeCode |
get_primitive_tc(TCKind tcKind)
指定されたプリミティブIDL型を表す
TypeCodeオブジェクトを取り出します。 |
boolean |
get_service_information(short service_type, ServiceInformationHolder service_info)
このORBがサポートするCORBAの機能とサービスに関する情報の取得に使用されます。
|
static ORB |
init()
ORB単体オブジェクトを返します。 |
static ORB |
init(Applet app, Properties props)
アプレット用に、新しい
ORBのインスタンスを生成します。 |
static ORB |
init(String[] args, Properties props)
スタンドアロン・アプリケーション用に、新しい
ORBのインスタンスを生成します。 |
abstract String[] |
list_initial_services()
「ネーム・サービス」や「インタフェース・リポジトリ」など、使用可能なCORBA初期サービスのオブジェクト参照を返します。
|
abstract String |
object_to_string(Object obj)
指定されたCORBAオブジェクト参照を文字列に変換します。
|
void |
perform_work()
メイン・スレッドから呼び出されると、実装に依存する処理単位を実行します。
|
abstract boolean |
poll_next_response()
据え置かれた(非同期)呼出しの中に、応答のあったものがあるかどうかを判定します。
|
abstract Object |
resolve_initial_references(String object_name)
使用可能な一連の初期サービス名から、特定のオブジェクト参照を解決します。
|
void |
run()
この操作は、ORBがシャットダウン・プロセスを完了するまで現行のスレッドをブロックし、あるスレッドが
shutdownを呼び出すと起動します。 |
abstract void |
send_multiple_requests_deferred(Request[] req)
複数の動的(DII)要求を非同期的に送ります。
|
abstract void |
send_multiple_requests_oneway(Request[] req)
応答を前提とせずに、複数の動的(DII)要求を非同期的に送ります。
|
protected abstract void |
set_parameters(Applet app, Properties props)
ORB実装を、指定されたアプレットとパラメータで初期化します。
|
protected abstract void |
set_parameters(String[] args, Properties props)
ORB実装を、指定されたパラメータとプロパティで初期化します。
|
void |
shutdown(boolean wait_for_completion)
ORBにシャットダウンを指示します。これにより、破棄の準備として、すべてのオブジェクト・アダプタがシャットダウンされます。
wait_for_completionパラメータがtrueの場合、この操作はすべてのORB処理(現在実行中の要求、オブジェクトの非アクティブ化、その他のオブジェクト・アダプタの操作など)が完了するまでブロックされます。 |
abstract Object |
string_to_object(String str)
object_to_stringメソッドにより生成された文字列を変換してCORBAオブジェクト参照に戻します。 |
boolean |
work_pending()
ORBが処理を実行するためにメイン・スレッドを必要とする場合は
true、メイン・スレッドを必要としない場合はfalseを返します。 |
public static ORB init()
ORB単体オブジェクトを返します。このメソッドは常に、同じORBのインスタンスを返します。このインスタンスは、org.omg.CORBA.ORBSingletonClassシステム・プロパティが記述するクラスのインスタンスです。
この引数なしの形式のinitメソッドは主に、TypeCodeオブジェクトのファクトリとして使用されます。Helperクラスはこのオブジェクトを使用して、typeメソッドを実装します。また、unionのTypeCodeオブジェクトを作成するときに、unionラベルの記述に使用するAnyオブジェクトの作成にも使用されます。
このメソッドはアプレットで使用することは意図されていません。したがって、アプレット環境で呼び出された場合、返されるORBは制約付きであり、TypeCodeオブジェクトのファクトリとしてしか使用できません。このため、このメソッドにより作成されるTypeCodeオブジェクトはすべて、信頼できないアプレット間でも安全に共有できます。
アプレットからこのメソッドを使ってORBを作成する場合、TypeCodeオブジェクトの作成以外の目的でこのメソッドが呼び出されると、システム例外がスローされます。
public static ORB init(String[] args, Properties props)
ORBのインスタンスを生成します。このメソッドを呼び出せるのはアプリケーションのみです。このメソッドは、呼び出されるたびに新しいフル機能のORBオブジェクトを返します。args - アプリケーションのmainメソッドのコマンド行引数。nullも可props - アプリケーション固有のプロパティ。nullも可public static ORB init(Applet app, Properties props)
ORBのインスタンスを生成します。このメソッドを呼び出せるのはアプレットのみです。このメソッドは、呼び出されるたびに新しいフル機能のORBオブジェクトを返します。app - アプレット。nullも可props - アプレット固有のプロパティ。nullも可protected abstract void set_parameters(String[] args, Properties props)
initメソッドで呼び出されると、パラメータを渡します。args - アプリケーションのmainメソッドのコマンド行引数。nullも可props - アプリケーション固有のプロパティ。nullも可protected abstract void set_parameters(Applet app, Properties props)
initメソッドで呼び出されると、パラメータを渡します。app - アプレット。nullも可props - アプレット固有のプロパティ。nullも可public void connect(Object obj)
ImplBaseクラスを拡張する必要があります。このため、サーバントはCORBAオブジェクト参照であって、org.omg.CORBA.Objectから継承する必要があります。ユーザーが作成したサーバントは、connectメソッドの呼出し後に、リモート呼出しを受け取ることができるようになります。ローカルでないオブジェクトのIDLメソッド呼出しでIDLのパラメータとしてサーバントが渡された場合、つまりサーバント・オブジェクトを整列化し、プロセス・アドレス空間の範囲外に送る必要がある場合は、サーバントを自動的かつ暗黙的にORBに接続することもできます。
サーバント・オブジェクトがすでにORBに接続されているときは、connectメソッドを呼び出しても何も変化はありません。
Portable Object Adapter APIを優先するので、OMGでは非推奨です。
obj - サーバント・オブジェクト参照public void destroy()
OBJECT_NOT_EXIST例外がスローされます。ORBが破棄されたあと、同じORBidを使用してinitを呼び出すと新たに構築されたORBへの参照が返されます。
シャットダウンされていないORBでdestroyが呼び出されると、シャットダウン・プロセスが起動し、ORBがシャットダウンするまでブロックしてから、ORBを破棄します。
現在呼出しを処理しているスレッドでアプリケーションがdestroyを呼び出すと、ブロックによりデッドロックとなるため、OMGマイナー・コード3でBAD_INV_ORDERシステム例外がスローされます。
最大限の移植性を確保し、リソース・リークを防ぐため、アプリケーションは終了前にすべてのORBインスタンスでshutdownとdestroyを必ず呼び出す必要があります。
BAD_INV_ORDER - 現在のスレッドが呼出しを処理している場合public void disconnect(Object obj)
org.omg.CORBA.OBJECT_NOT_EXIST例外をリモート・クライアントに返します。このため、リモート・クライアントからは、オブジェクトが破棄されたように見えます。ただし、サーバントを直接使用して発行されたローカル要求はORBを介して渡されることはありません。このため、サーバントによる処理が継続されます。
サーバントがORBに接続されていない場合は、disconnectメソッドを呼び出しても何も変化はありません。
Portable Object Adapter APIを優先するので、OMGでは非推奨です。
obj - ORBから切り離されるサーバント・オブジェクトpublic abstract String[] list_initial_services()
Stringオブジェクトの配列public abstract Object resolve_initial_references(String object_name) throws InvalidName
object_name - 文字列としての初期サービス名InvalidName - 指定された名前が定義済みのサービスに関連していない場合public abstract String object_to_string(Object obj)
結果として得られるStringオブジェクトは、Stringオブジェクトを操作可能な方法で格納または通信できます。
obj - 文字列に変換されるオブジェクト参照public abstract Object string_to_object(String str)
object_to_stringメソッドにより生成された文字列を変換してCORBAオブジェクト参照に戻します。str - 変換されてオブジェクト参照に戻される文字列。object_to_stringメソッドを使ってオブジェクト参照を文字列に変換した結果でなければならない。public abstract NVList create_list(int count)
NamedValueオブジェクトにとって(おそらく)十分な空間をNVListに割り当てます。指定されたサイズは記憶域割当てのための単なるヒントであり、リストの最大サイズを意味しません。count - 空間を割り当てるNamedValueオブジェクトの推奨数NVListNVListpublic NVList create_operation_list(Object oper)
OperationDefオブジェクトで記述される操作の引数記述で初期化された、NVListを生成します。このOperationDefオブジェクトは、インタフェース・リポジトリから取得されます。返されたNVListオブジェクト内の引数は、元のIDLの操作定義と同じ順序になります。このため、動的な呼出し要求でこのリストを使用できます。oper - リスト作成に使われるOperationDefオブジェクトOperationDefオブジェクトで記述されるメソッドの引数記述を格納している、新しく生成されたNVListオブジェクトNVListpublic abstract NamedValue create_named_value(String s, Any any, int flags)
NamedValueオブジェクトを生成します。
NamedValueオブジェクトは、(1)パラメータか戻り値、または(2)コンテキスト・プロパティとして機能します。NamedValueオブジェクト自体で使用することも、NVListオブジェクト内の要素として使用することもできます。
s - NamedValueオブジェクトの名前any - NamedValueオブジェクトに挿入されるAny値flags - NamedValueの引数モード・フラグ。ARG_IN.value、ARG_OUT.value、またはARG_INOUT.valueのいずれか。NamedValueオブジェクトNamedValuepublic abstract ExceptionList create_exception_list()
ExceptionListオブジェクトを作成します。ExceptionListオブジェクトpublic abstract ContextList create_context_list()
ContextListオブジェクトを作成します。ContextListオブジェクトContextList, Contextpublic abstract Context get_default_context()
Contextオブジェクトを取得します。ContextオブジェクトContextpublic abstract Environment create_environment()
Environmentオブジェクトを作成します。EnvironmentオブジェクトEnvironmentpublic abstract OutputStream create_output_stream()
org.omg.CORBA.portable.OutputStreamオブジェクトを生成します。メソッド呼出し時に、このオブジェクトの内部でIDLのメソッドのパラメータを整列化できます。org.omg.CORBA.portable.OutputStreamオブジェクトpublic abstract void send_multiple_requests_oneway(Request[] req)
req - リクエスト・オブジェクトの配列public abstract void send_multiple_requests_deferred(Request[] req)
req - Requestオブジェクトの配列public abstract boolean poll_next_response()
true、そうでない場合は falsepublic abstract Request get_next_response() throws WrongTransaction
Requestのインスタンスを取得します。RequestオブジェクトWrongTransaction - 元のリクエストの送信元とは異なるトランザクション・スコープからget_next_responseメソッドが呼び出された場合。詳細はOMG Transaction Service仕様を参照。public abstract TypeCode get_primitive_tc(TCKind tcKind)
TypeCodeオブジェクトを取り出します。tcKind - プリミティブ型に対応するTCKindのインスタンスTypeCodeオブジェクトpublic abstract TypeCode create_struct_tc(String id, String name, StructMember[] members)
structを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたID、名前、メンバーで初期化されます。id - structのリポジトリIDname - structの名前members - structのメンバーを記述する配列structを記述する新しく生成されたTypeCodeオブジェクトpublic abstract TypeCode create_union_tc(String id, String name, TypeCode discriminator_type, UnionMember[] members)
unionを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたID、名前、判別子の型、メンバーで初期化されます。id - unionのリポジトリIDname - unionの名前discriminator_type - union判別子の型members - unionのメンバーを記述する配列unionを記述する新しく生成されたTypeCodeオブジェクトpublic abstract TypeCode create_enum_tc(String id, String name, String[] members)
enumを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたID、名前、メンバーで初期化されます。id - enumのリポジトリIDname - enumの名前members - enumのメンバーを記述する配列enumを記述する新しく生成されたTypeCodeオブジェクトpublic abstract TypeCode create_alias_tc(String id, String name, TypeCode original_type)
alias (typedef)を表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたID、名前、元の型で初期化されます。id - aliasのリポジトリIDname - aliasの名前original_type - aliasである元の型を記述するTypeCodeオブジェクトaliasを記述する新しく生成されたTypeCodeオブジェクトpublic abstract TypeCode create_exception_tc(String id, String name, StructMember[] members)
exceptionを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたID、名前、メンバーで初期化されます。id - exceptionのリポジトリIDname - exceptionの名前members - exceptionのメンバーを記述する配列exceptionを記述する新しく生成されたTypeCodeオブジェクトpublic abstract TypeCode create_interface_tc(String id, String name)
interfaceを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたIDと名前で初期化されます。id - interfaceのリポジトリIDname - interfaceの名前interfaceを記述する新しく生成されたTypeCodeオブジェクトpublic abstract TypeCode create_string_tc(int bound)
stringを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたバウンドで初期化されます。このバウンドは、文字列の最大長を表します。ゼロは、この型コードで記述される文字列がアンバウンド形式であることを示します。bound - stringのバウンド。負の値は不可stringを記述する新しく生成されたTypeCodeオブジェクトBAD_PARAM - バウンドが負の値の場合public abstract TypeCode create_wstring_tc(int bound)
wstring (ワイド文字列)を表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたバウンドで初期化されます。このバウンドは、ワイド文字列の最大長を表します。ゼロは、この型コードで記述される文字列がアンバウンド形式であることを示します。bound - wstringのバウンド。負の値は不可wstringを記述する新しく生成されたTypeCodeオブジェクトBAD_PARAM - バウンドが負の値の場合public abstract TypeCode create_sequence_tc(int bound, TypeCode element_type)
sequenceを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたバウンドと要素型で初期化されます。bound - sequenceのバウンド。アンバウンドの場合は0element_type - sequenceに格納されている要素を記述するTypeCodeオブジェクトsequenceを記述する新しく生成されたTypeCodeオブジェクト@Deprecated public abstract TypeCode create_recursive_sequence_tc(int bound, int offset)
sequenceを表すTypeCodeオブジェクトを生成します。
次のコードに示すIDLのstruct Nodeでは、シーケンスを作成するオフセット・パラメータは1になります。
Struct Node {
long value;
Sequence <Node> subnodes;
};
bound - sequenceのバウンド。アンバウンドの場合は0offset - このシーケンスの要素を記述する、囲みTypeCodeオブジェクトのインデックスTypeCodeオブジェクトcreate_recursive_tc, create_sequence_tcpublic abstract TypeCode create_array_tc(int length, TypeCode element_type)
arrayを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定された長さと要素型で初期化されます。length - arrayの長さelement_type - arrayに格納されている要素の型を記述するTypeCodeオブジェクトarrayを記述する新しく生成されたTypeCodeオブジェクトpublic TypeCode create_native_tc(String id, String name)
TypeCodeオブジェクトを生成します。id - ネイティブ型の論理ID。name - ネイティブ型の名前。public TypeCode create_abstract_interface_tc(String id, String name)
TypeCodeオブジェクトを生成します。id - 抽象インタフェース型の論理ID。name - 抽象インタフェース型の名前。public TypeCode create_fixed_tc(short digits, short scale)
TypeCodeオブジェクトを生成します。digits - 10進数の合計数を数字で指定。1から31までの論理和である必要がある。scale - 小数点の位置。public TypeCode create_value_tc(String id, String name, short type_modifier, TypeCode concrete_base, ValueMember[] members)
TypeCodeオブジェクトを生成します。concrete_baseパラメータは、TypeCodeが生成されるvalue型の即時具象基底value型に対するTypeCodeです。value型に具象基底がない場合は、nullにすることもできます。id - 値型の論理ID。name - 値型の名前。type_modifier - 値型修飾子定数。VM_NONE、VM_CUSTOM、VM_ABSTRACT、またはVM_TRUNCATABLEのうちの1つconcrete_base - 具象基底value型を記述するTypeCodeオブジェクトmembers - 値型のメンバーを格納する配列public TypeCode create_recursive_tc(String id)
TypeCodeを生成します。idパラメータによって、再帰TypeCodeがプレースホルダーとして機能する型のリポジトリIDが指定されます。指定したリポジトリIDに対応する、囲みTypeCodeに再帰TypeCodeが正しく埋め込まれると、標準のTypeCodeとして機能します。囲みTypeCodeに埋め込まれる前に再帰TypeCodeで操作を呼び出すと、BAD_TYPECODE例外が発生します。
たとえば、次のIDL型宣言には再帰が含まれます。
Struct Node {
Sequence<Node> subnodes;
};
構造体NodeにTypeCodeを生成するには、次に示すようにTypeCode生成オペレーションを呼び出します。
String nodeID = "IDL:Node:1.0";
TypeCode recursiveSeqTC = orb.create_sequence_tc(0, orb.create_recursive_tc(nodeID));
StructMember[] members = { new StructMember("subnodes", recursiveSeqTC, null) };
TypeCode structNodeTC = orb.create_struct_tc(nodeID, "Node", members);
次は、不正なIDL型宣言です。
Struct Node {
Node next;
};
再帰型は、空も可能なシーケンス内でのみ使用できます。これによりAnyで構造体を転送する場合のような、整列化の問題が回避されます。
id - 参照型の論理IDpublic TypeCode create_value_box_tc(String id, String name, TypeCode boxed_type)
TypeCodeオブジェクトを生成します。id - 値型の論理IDname - 値型の名前boxed_type - 型のTypeCodepublic abstract Any create_any()
kindフィールドがTCKind.tc_nullに設定されたTypecodeオブジェクトを格納するように初期化された、IDLのAnyオブジェクトを生成します。Anyオブジェクト@Deprecated public Current get_current()
resolve_initial_referencesを使用してください。Currentオブジェクトを取り出します。Currentインタフェースは、トランザクションやセキュリティなどのサービスで使用するスレッド固有の情報を管理するために使います。CurrentオブジェクトCORBAパッケージに実装されていない機能についてのコメントpublic void run()
shutdownを呼び出すと起動します。これは、ORBのシャットダウン時に通知を受ける複数のスレッドで使用できます。public void shutdown(boolean wait_for_completion)
wait_for_completionパラメータがtrueの場合、この操作はすべてのORB処理(現在実行中の要求、オブジェクトの非アクティブ化、その他のオブジェクト・アダプタの操作など)が完了するまでブロックされます。アプリケーションが現在呼出しを処理しているスレッドでこれを実行した場合、ブロックによりデッドロックとなるので、OMGマイナー・コード3でBAD_INV_ORDERシステム例外がスローされます。wait_for_completionパラメータがFALSEの場合、復帰時にシャットダウンが完了していない場合があります。
ORBがシャットダウンの処理中でも、ORBは通常通りに動作し、すべての要求が完了するまで受信および送信要求を処理します。ORBがシャットダウンすると、オブジェクト参照管理操作だけがORBまたはそれから取得される任意のオブジェクト参照で呼び出すことができます。アプリケーションは、ORB自体に対してdestroy操作を呼び出すこともできます。その他の操作を呼び出すと、OMGマイナー・コード4でBAD_INV_ORDERシステム例外がスローされます。
shutdownが呼び出されたあとで、ORB.runメソッドが復帰します。
wait_for_completion - シャットダウンが完了するまで呼出しをブロックする場合はtrue、直ちに復帰する場合はfalseBAD_INV_ORDER - 現在のスレッドが呼出しを処理している場合public boolean work_pending()
true、メイン・スレッドを必要としない場合はfalseを返します。true、作業待機がなく、メイン・スレッドを必要としない場合はfalsepublic void perform_work()
work_pendingメソッドとperform_workメソッドを連携して使うと、ORBとほかのアクティビティの間でメイン・スレッドを多重化する単純なポーリング・ループを実装できます。public boolean get_service_information(short service_type,
ServiceInformationHolder service_info)
service_type - リクエストする情報のサービス・タイプを示すshortservice_info - このメソッドで生成されたServiceInformationオブジェクトを保持するServiceInformationHolderオブジェクトtrue、リクエストされたサービス・タイプの情報がない場合はfalseCORBAパッケージに実装されていない機能についてのコメント@Deprecated public DynAny create_dyn_any(Any value)
AnyオブジェクトからDynAnyオブジェクトを新たに生成します。
value - 新規DynAnyオブジェクトの生成元のAnyオブジェクトAnyオブジェクトから生成された新規DynAnyオブジェクトCORBAパッケージに実装されていない機能についてのコメント@Deprecated public DynAny create_basic_dyn_any(TypeCode type) throws InconsistentTypeCode
TypeCodeオブジェクトから基本DynAnyオブジェクトを生成します。
type - 新規DynAnyオブジェクトの生成元のTypeCodeオブジェクトTypeCodeオブジェクトから生成された新規DynAnyオブジェクトInconsistentTypeCode - 指定されたTypeCodeオブジェクトが、オペレーションとの一貫性を保持しない場合。CORBAパッケージに実装されていない機能についてのコメント@Deprecated public DynStruct create_dyn_struct(TypeCode type) throws InconsistentTypeCode
TypeCodeオブジェクトからDynStructオブジェクトを新たに生成します。
type - 新規DynStructオブジェクトの生成元のTypeCodeオブジェクトTypeCodeオブジェクトから生成された新規DynStructオブジェクトInconsistentTypeCode - 指定されたTypeCodeオブジェクトが、オペレーションとの一貫性を保持しない場合。CORBAパッケージに実装されていない機能についてのコメント@Deprecated public DynSequence create_dyn_sequence(TypeCode type) throws InconsistentTypeCode
TypeCodeオブジェクトからDynSequenceオブジェクトを新たに生成します。
type - 新規DynSequenceオブジェクトの生成元のTypeCodeオブジェクトTypeCodeオブジェクトから生成された新規DynSequenceオブジェクトInconsistentTypeCode - 指定されたTypeCodeオブジェクトが、オペレーションとの一貫性を保持しない場合。CORBAパッケージに実装されていない機能についてのコメント@Deprecated public DynArray create_dyn_array(TypeCode type) throws InconsistentTypeCode
TypeCodeオブジェクトからDynArrayオブジェクトを新たに生成します。
type - 新規DynArrayオブジェクトの生成元のTypeCodeオブジェクトTypeCodeオブジェクトから生成された新規DynArrayオブジェクトInconsistentTypeCode - 指定されたTypeCodeオブジェクトが、オペレーションとの一貫性を保持しない場合。CORBAパッケージに実装されていない機能についてのコメント@Deprecated public DynUnion create_dyn_union(TypeCode type) throws InconsistentTypeCode
TypeCodeオブジェクトからDynUnionオブジェクトを新たに生成します。
type - 新規DynUnionオブジェクトの生成元のTypeCodeオブジェクトTypeCodeオブジェクトから生成された新規DynUnionオブジェクトInconsistentTypeCode - 指定されたTypeCodeオブジェクトが、オペレーションとの一貫性を保持しない場合。CORBAパッケージに実装されていない機能についてのコメント@Deprecated public DynEnum create_dyn_enum(TypeCode type) throws InconsistentTypeCode
TypeCodeオブジェクトからDynEnumオブジェクトを新たに生成します。
type - 新規DynEnumオブジェクトの生成元のTypeCodeオブジェクトTypeCodeオブジェクトから生成された新規DynEnumオブジェクトInconsistentTypeCode - 指定されたTypeCodeオブジェクトが、オペレーションとの一貫性を保持しない場合。CORBAパッケージに実装されていない機能についてのコメントpublic Policy create_policy(int type, Any val) throws PolicyError
type - 生成するポリシー・オブジェクトのPolicyTypeval - 生成するPolicyオブジェクトの初期状態設定に使用される値org.omg.CORBA.PolicyError - リクエストされたポリシーがサポートされないか、ポリシーに対してリクエストされた初期状態がサポートされない場合。PolicyError バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.