- java.lang.Object
-
- org.omg.CORBA.ORB
-
- 直系の既知のサブクラス:
ORB
public abstract class ORB extends Object
CORBA Object Request Broker機能のためのAPIを提供するクラスです。ORBクラスは、ほかのベンダーのORB実装を使えるようにする「プラグイン可能なORB実装」APIも提供します。ORBは、要求を発行する側のオブジェクト(クライアント)と要求を処理する側のオブジェクト(サーバー)を接続することによって、CORBAオブジェクト間の相互通信を可能にします。
ORBクラスはジェネリックCORBA機能をカプセル化するもので、次のような操作を行います。項目の5と6 (ORBクラスのほとんどのメソッドを含む)は、通常、Dynamic Invocation Interface(DII)とDynamic Skeleton Interface(DSI)で使用されます。 これらのインタフェースは、開発者が直接使用することもできますが、通常はORBで内部的に使用されるため、一般のプログラマが見ることはありません。- 定義済みのプロパティと環境パラメータの値を指定してORB実装を初期化する
-
resolve_initial_referencesメソッドを使って、ネーム・サービスなどのサービスへの初期オブジェクト参照を取得する - オブジェクト参照と文字列の間の変換を行う
- ORBとサーバント(CORBAオブジェクト実装のインスタンス)間での接続の確立と切離しを行う
- 次のようなオブジェクトを生成する
TypeCodeAnyNamedValueContextEnvironment- これらのオブジェクトが格納されているリスト(
NVListなど)
- DIIの複数のメッセージを送信する
ORBクラスを使うと、オブジェクトがネットワーク上のどこに実装されていても、その参照を取得できます。アプリケーションやアプレットは、3つの
initメソッドの1つを使ってそれ自体をORBに対して初期化することにより、CORBA環境へのアクセスを取得します。 3つのメソッドのうち2つは、次の表に記載されているプロパティ(名前と値との関連付け)を使用します。
標準Java CORBAプロパティ プロパティ名 プロパティ値 org.omg.CORBA.ORBClass ORB実装のクラス名 org.omg.CORBA.ORBSingletonClass init()が返すORBのクラス名これらのプロパティにより、さまざまなベンダーの
ORB実装がプラグイン可能になります。ORBインスタンスの生成時には、ORB実装のクラス名が次の標準検索順で検索されます。
- Appletパラメータまたはアプリケーション文字列配列があればチェック・インする
- プロパティ・パラメータがあればチェック・インする
- システムのプロパティがあればチェックイン
- user.homeディレクトリにorb.propertiesファイルがあればチェックイン
- ランタイム・イメージにorb.propertiesファイルがあればチェックイン
- ハードコードされているデフォルトの動作を調べる(Java IDLの実装を使用)
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がシステム・プロパティ、またはorb.propertiesを介して構成されている場合、シングルトンORBは配置され、システム・クラス・ローダーを介してロードされます。 したがって、必要に応じて、この代替ORBSingletonのクラスをアプリケーション・クラス・パスで使用する必要があります。 シングルトンORBはシステム全体であることに留意すべきです。
アプリケーションごとのORBが2-arg initメソッドを使用して作成されると、スレッド・コンテキスト・クラス・ローダーを使用して配置されます。
IDLからJava言語へのOMG仕様では、orb.propertiesを検索するためにJava実行時イメージ内のロケーションとして${java.home}/libディレクトリが文書化されています。 このロケーションは、ユーザーが編集可能な構成ファイルではありません。 したがって、実装は最初にorb.propertiesの${java.home}/confディレクトリをチェックし、その後${java.home}/libディレクトリをチェックします。
「IDL開発者ガイド」も参照してください。
- 導入されたバージョン:
- JDK1.2
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 ORB()
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 voidconnect(Object obj)指定されたサーバント・オブジェクト(サーバー実装クラスのインスタンスであるJavaオブジェクト)をORBに接続します。TypeCodecreate_abstract_interface_tc(String id, String name)IDLの抽象インタフェースのTypeCodeオブジェクトを生成します。abstract TypeCodecreate_alias_tc(String id, String name, TypeCode original_type)IDLのalias(typedef)を表すTypeCodeオブジェクトを生成します。abstract Anycreate_any()kindフィールドがTCKind.tc_nullに設定されたTypecodeオブジェクトを格納するように初期化された、IDLのAnyオブジェクトを生成します。abstract TypeCodecreate_array_tc(int length, TypeCode element_type)IDLのarrayを表すTypeCodeオブジェクトを生成します。DynAnycreate_basic_dyn_any(TypeCode type)非推奨。代わりに、新しいDynAnyFactory APIを使用してくださいabstract ContextListcreate_context_list()空のContextListオブジェクトを作成します。DynAnycreate_dyn_any(Any value)非推奨。代わりに、新しいDynAnyFactory APIを使用してくださいDynArraycreate_dyn_array(TypeCode type)非推奨。代わりに、新しいDynAnyFactory APIを使用してくださいDynEnumcreate_dyn_enum(TypeCode type)非推奨。代わりに、新しいDynAnyFactory APIを使用してくださいDynSequencecreate_dyn_sequence(TypeCode type)非推奨。代わりに、新しいDynAnyFactory APIを使用してくださいDynStructcreate_dyn_struct(TypeCode type)非推奨。代わりに、新しいDynAnyFactory APIを使用してくださいDynUnioncreate_dyn_union(TypeCode type)非推奨。代わりに、新しいDynAnyFactory APIを使用してくださいabstract TypeCodecreate_enum_tc(String id, String name, String[] members)IDLのenumを表すTypeCodeオブジェクトを生成します。abstract Environmentcreate_environment()Environmentオブジェクトを作成します。abstract ExceptionListcreate_exception_list()空のExceptionListオブジェクトを作成します。abstract TypeCodecreate_exception_tc(String id, String name, StructMember[] members)IDLのexceptionを表すTypeCodeオブジェクトを生成します。TypeCodecreate_fixed_tc(short digits, short scale)IDL fixed型のTypeCodeオブジェクトを生成します。abstract TypeCodecreate_interface_tc(String id, String name)IDLのinterfaceを表すTypeCodeオブジェクトを生成します。abstract NVListcreate_list(int count)指定数のNamedValueオブジェクトにとって(おそらく)十分な空間をNVListに割り当てます。abstract NamedValuecreate_named_value(String s, Any any, int flags)指定された名前、値、引数モード・フラグを使って、NamedValueオブジェクトを生成します。TypeCodecreate_native_tc(String id, String name)IDLネイティブ型のTypeCodeオブジェクトを生成します。NVListcreate_operation_list(Object oper)指定されたOperationDefオブジェクトで記述される操作の引数記述で初期化された、NVListを生成します。abstract OutputStreamcreate_output_stream()新しいorg.omg.CORBA.portable.OutputStreamオブジェクトを生成します。メソッド呼出し時に、このオブジェクトの内部でIDLのメソッドのパラメータを整列化できます。Policycreate_policy(int type, Any val)指定された初期状態で特定の型のポリシー・オブジェクトのインスタンスを新規作成するために呼び出されます。abstract TypeCodecreate_recursive_sequence_tc(int bound, int offset)非推奨。代わりにcreate_recursive_tcとcreate_sequence_tcの組み合わせを使用してください。TypeCodecreate_recursive_tc(String id)再帰を含むTypeCodeを生成する処理の際に、具象TypeCodeのプレースホルダーとして機能する再帰TypeCodeを生成します。abstract TypeCodecreate_sequence_tc(int bound, TypeCode element_type)IDLのsequenceを表すTypeCodeオブジェクトを生成します。abstract TypeCodecreate_string_tc(int bound)IDLのバウンド形式stringを表すTypeCodeオブジェクトを生成します。abstract TypeCodecreate_struct_tc(String id, String name, StructMember[] members)IDLのstructを表すTypeCodeオブジェクトを生成します。abstract TypeCodecreate_union_tc(String id, String name, TypeCode discriminator_type, UnionMember[] members)IDLのunionを表すTypeCodeオブジェクトを生成します。TypeCodecreate_value_box_tc(String id, String name, TypeCode boxed_type)IDL値ボックスのTypeCodeオブジェクトを生成します。TypeCodecreate_value_tc(String id, String name, short type_modifier, TypeCode concrete_base, ValueMember[] members)IDL値型のTypeCodeオブジェクトを生成します。abstract TypeCodecreate_wstring_tc(int bound)IDLのバウンド形式wstring(ワイド文字列)を表すTypeCodeオブジェクトを生成します。voiddestroy()リソースを再使用できるようにORBを破棄します。voiddisconnect(Object obj)指定されたサーバント・オブジェクトをORBから切り離します。Currentget_current()非推奨。resolve_initial_referencesを使用します。abstract Contextget_default_context()デフォルトのContextオブジェクトを取得します。abstract Requestget_next_response()応答を受け取った次のRequestのインスタンスを取得します。abstract TypeCodeget_primitive_tc(TCKind tcKind)指定されたプリミティブIDL型を表すTypeCodeオブジェクトを取り出します。booleanget_service_information(short service_type, ServiceInformationHolder service_info)このORBがサポートするCORBAの機能とサービスに関する情報の取得に使用されます。static ORBinit()ORB単体オブジェクトを返します。static ORBinit(Applet app, Properties props)アプレット用に、新しいORBのインスタンスを生成します。static ORBinit(String[] args, Properties props)スタンドアロン・アプリケーション用に、新しいORBのインスタンスを生成します。abstract String[]list_initial_services()「ネーム・サービス」や「インタフェース・リポジトリ」など、使用可能なCORBA初期サービスのオブジェクト参照を返します。abstract Stringobject_to_string(Object obj)指定されたCORBAオブジェクト参照を文字列に変換します。voidperform_work()メイン・スレッドから呼び出されると、実装に依存する処理単位を実行します。abstract booleanpoll_next_response()据え置かれた(非同期)呼出しの中に、応答のあったものがあるかどうかを判定します。abstract Objectresolve_initial_references(String object_name)使用可能な一連の初期サービス名から、特定のオブジェクト参照を解決します。voidrun()この操作は、ORBがシャットダウン・プロセスを完了するまで現行のスレッドをブロックし、あるスレッドがshutdownを呼び出すと起動します。abstract voidsend_multiple_requests_deferred(Request[] req)複数の動的(DII)要求を非同期的に送ります。abstract voidsend_multiple_requests_oneway(Request[] req)応答を前提とせずに、複数の動的(DII)要求を非同期的に送ります。protected abstract voidset_parameters(Applet app, Properties props)ORB実装を、指定されたアプレットとパラメータで初期化します。protected abstract voidset_parameters(String[] args, Properties props)ORB実装を、指定されたパラメータとプロパティで初期化します。voidshutdown(boolean wait_for_completion)ORBにシャットダウンを指示します。これにより、破棄の準備として、すべてのオブジェクト・アダプタがシャットダウンされます。wait_for_completionパラメータがtrueの場合、この操作はすべてのORB処理(現在実行中の要求、オブジェクトの非アクティブ化、その他のオブジェクト・アダプタの操作など)が完了するまでブロックされます。abstract Objectstring_to_object(String str)object_to_stringメソッドにより生成された文字列を変換してCORBAオブジェクト参照に戻します。booleanwork_pending()ORBが処理を実行するためにメイン・スレッドを必要とする場合はtrue、メイン・スレッドを必要としない場合はfalseを返します。
-
-
-
メソッドの詳細
-
init
public static ORB init()
ORB単体オブジェクトを返します。 このメソッドは常に、同じORBのインスタンスを返します。このインスタンスは、org.omg.CORBA.ORBSingletonClassシステム・プロパティが記述するクラスのインスタンスです。この引数なしの形式の
initメソッドは主に、TypeCodeオブジェクトのファクトリとして使用されます。Helperクラスはこのオブジェクトを使用して、typeメソッドを実装します。 また、unionのラベル(unionのTypeCodeオブジェクトの作成の一部として)を記述するために使用されるAnyオブジェクトを作成するためにも使用されます。このメソッドはアプレットで使用することは意図されていません。したがって、アプレット環境で呼び出された場合、返されるORBは制約付きであり、
TypeCodeオブジェクトのファクトリとしてしか使用できません。 このため、このメソッドにより作成されるTypeCodeオブジェクトはすべて、信頼できないアプレット間でも安全に共有できます。アプレットからこのメソッドを使ってORBを作成する場合、
TypeCodeオブジェクトの作成以外の目的でこのメソッドが呼び出されると、システム例外がスローされます。- 実装上の注意:
- システム・プロパティ、またはorb.propertiesを介して構成されている場合、システム全体のシングルトンORBは、システム・クラス・ローダーを介して配置されます。
- 戻り値:
- 単独ORB
-
init
public static ORB init(String[] args, Properties props)
スタンドアロン・アプリケーション用に、新しいORBのインスタンスを生成します。 このメソッドを呼び出せるのはアプリケーションのみです。このメソッドは、呼び出されるたびに新しいフル機能のORBオブジェクトを返します。- 実装上の注意:
- システム・プロパティ(orb.properties)によって構成されている場合、ORBはスレッド・コンテキスト・クラス・ローダー経由で配置されます。
- パラメータ:
args- アプリケーションのmainメソッドのコマンド行引数。nullも可props- アプリケーション固有のプロパティ。nullも可- 戻り値:
- 新しく生成されたORBのインスタンス
-
init
public static ORB init(Applet app, Properties props)
アプレット用に、新しいORBのインスタンスを生成します。 このメソッドを呼び出せるのはアプレットのみです。このメソッドは、呼び出されるたびに新しいフル機能のORBオブジェクトを返します。- 実装上の注意:
- システム・プロパティ(orb.properties)によって構成されている場合、ORBはスレッド・コンテキスト・クラス・ローダー経由で配置されます。
- パラメータ:
app- アプレット。nullも可props- アプレット固有のプロパティ。nullも可- 戻り値:
- 新しく生成されたORBのインスタンス
-
set_parameters
protected abstract void set_parameters(String[] args, Properties props)
ORB実装を、指定されたパラメータとプロパティで初期化します。 このメソッドはアプリケーション専用です。このメソッドは、サブクラスORB実装によって実装され、適切なinitメソッドで呼び出されると、パラメータを渡します。- パラメータ:
args- アプリケーションのmainメソッドのコマンド行引数。nullも可props- アプリケーション固有のプロパティ。nullも可
-
set_parameters
protected abstract void set_parameters(Applet app, Properties props)
ORB実装を、指定されたアプレットとパラメータで初期化します。 このメソッドはアプレット専用です。このメソッドは、サブクラスORB実装によって実装し、適切なinitメソッドで呼び出されると、パラメータを渡します。- パラメータ:
app- アプレット。nullも可props- アプレット固有のプロパティ。nullも可
-
connect
public void connect(Object obj)
指定されたサーバント・オブジェクト(サーバー実装クラスのインスタンスであるJavaオブジェクト)をORBに接続します。 サーバント・クラスは、サーバーがサポートするインタフェースに対応するImplBaseクラスを拡張する必要があります。 このため、サーバントはCORBAオブジェクト参照であって、org.omg.CORBA.Objectから継承する必要があります。 ユーザーが作成したサーバントは、connectメソッドの呼出し後に、リモート呼出しを受け取ることができるようになります。 ローカルでないオブジェクトのIDLメソッド呼出しでIDLのパラメータとしてサーバントが渡された場合、つまりサーバント・オブジェクトを整列化し、プロセス・アドレス空間の範囲外に送る必要がある場合は、サーバントを自動的かつ暗黙的にORBに接続することもできます。サーバント・オブジェクトがすでにORBに接続されているときは、
connectメソッドを呼び出しても何も変化はありません。Portable Object Adapter APIを優先するので、OMGでは非推奨です。
- パラメータ:
obj- サーバント・オブジェクト参照
-
destroy
public void destroy()
リソースを再使用できるようにORBを破棄します。 破棄されたORB参照で何らかの操作が呼び出されると、OBJECT_NOT_EXIST例外がスローされます。 ORBが破棄されたあと、同じORBidを使用してinitを呼び出すと新たに構築されたORBへの参照が返されます。シャットダウンされていないORBで
destroyが呼び出されると、シャットダウン・プロセスが起動し、ORBがシャットダウンするまでブロックしてから、ORBを破棄します。
現在呼出しを処理しているスレッドでアプリケーションがdestroyを呼び出すと、ブロックによりデッドロックとなるため、OMGマイナー・コード3でBAD_INV_ORDERシステム例外がスローされます。最大限の移植性を確保し、リソース・リークを防ぐため、アプリケーションは終了前にすべてのORBインスタンスで
shutdownとdestroyを必ず呼び出す必要があります。- 例外:
BAD_INV_ORDER- 現在のスレッドが呼出しを処理している場合
-
disconnect
public void disconnect(Object obj)
指定されたサーバント・オブジェクトをORBから切り離します。 このメソッドが復帰すると、ORBは切り離されたサーバントからの着信リモート要求を拒否し、org.omg.CORBA.OBJECT_NOT_EXIST例外をリモート・クライアントに返します。 このため、リモート・クライアントからは、オブジェクトが破棄されたように見えます。 ただし、サーバントを直接使用して発行されたローカル要求はORBを介して渡されることはありません。このため、サーバントによる処理が継続されます。サーバントがORBに接続されていない場合は、
disconnectメソッドを呼び出しても何も変化はありません。Portable Object Adapter APIを優先するので、OMGでは非推奨です。
- パラメータ:
obj- ORBから切り離されるサーバント・オブジェクト
-
list_initial_services
public abstract String[] list_initial_services()
「ネーム・サービス」や「インタフェース・リポジトリ」など、使用可能なCORBA初期サービスのオブジェクト参照を返します。- 戻り値:
- このORBで使用可能なCORBA初期サービスのオブジェクト参照を表す
Stringオブジェクトの配列
-
resolve_initial_references
public abstract Object resolve_initial_references(String object_name) throws InvalidName
使用可能な一連の初期サービス名から、特定のオブジェクト参照を解決します。- パラメータ:
object_name- 文字列としての初期サービス名- 戻り値:
- 指定された名前に関連しているオブジェクト参照
- 例外:
InvalidName- 指定された名前が定義済みのサービスに関連していない場合
-
object_to_string
public abstract String object_to_string(Object obj)
指定されたCORBAオブジェクト参照を文字列に変換します。 この文字列の形式はIIOPであらかじめ定義されているので、異なるORBで生成された文字列を変換してオブジェクト参照に戻すことができます。結果として得られる
Stringオブジェクトは、Stringオブジェクトを操作可能な方法で格納または通信できます。- パラメータ:
obj- 文字列に変換されるオブジェクト参照- 戻り値:
- オブジェクト参照を表す文字列
-
string_to_object
public abstract Object string_to_object(String str)
object_to_stringメソッドにより生成された文字列を変換してCORBAオブジェクト参照に戻します。- パラメータ:
str- 変換されてオブジェクト参照に戻される文字列。object_to_stringメソッドを使ってオブジェクト参照を文字列に変換した結果でなければならない。- 戻り値:
- オブジェクト参照
-
create_list
public abstract NVList create_list(int count)
指定数のNamedValueオブジェクトにとって(おそらく)十分な空間をNVListに割り当てます。 指定されたサイズは記憶域割当てのための単なるヒントであり、リストの最大サイズを意味しません。- パラメータ:
count- 空間を割り当てるNamedValueオブジェクトの推奨数- 戻り値:
- 新しく生成された
NVList - 関連項目:
NVList
-
create_operation_list
public NVList create_operation_list(Object oper)
指定されたOperationDefオブジェクトで記述される操作の引数記述で初期化された、NVListを生成します。 このOperationDefオブジェクトは、インタフェース・リポジトリから取得されます。 返されたNVListオブジェクト内の引数は、元のIDLの操作定義と同じ順序になります。このため、動的な呼出し要求でこのリストを使用できます。- パラメータ:
oper- リスト作成に使われるOperationDefオブジェクト- 戻り値:
- 指定された
OperationDefオブジェクトで記述されるメソッドの引数記述を格納している、新しく生成されたNVListオブジェクト - 関連項目:
NVList
-
create_named_value
public abstract NamedValue create_named_value(String s, Any any, int flags)
指定された名前、値、引数モード・フラグを使って、NamedValueオブジェクトを生成します。NamedValueオブジェクトは、(1)パラメータか戻り値、または(2)コンテキスト・プロパティとして機能します。 それ自体で使用することも、NVListオブジェクト内の要素として使用することもできます。- パラメータ:
s-NamedValueオブジェクトの名前any-NamedValueオブジェクトに挿入されるAny値flags-NamedValueの引数モード・フラグ。ARG_IN.value、ARG_OUT.value、またはARG_INOUT.valueのいずれか。- 戻り値:
- 新しく作成された
NamedValueオブジェクト - 関連項目:
NamedValue
-
create_exception_list
public abstract ExceptionList create_exception_list()
空のExceptionListオブジェクトを作成します。- 戻り値:
- 新しく作成された
ExceptionListオブジェクト
-
create_context_list
public abstract ContextList create_context_list()
空のContextListオブジェクトを作成します。- 戻り値:
- 新しく作成された
ContextListオブジェクト - 関連項目:
ContextList,Context
-
get_default_context
public abstract Context get_default_context()
デフォルトのContextオブジェクトを取得します。- 戻り値:
- デフォルトの
Contextオブジェクト - 関連項目:
Context
-
create_environment
public abstract Environment create_environment()
Environmentオブジェクトを作成します。- 戻り値:
- 新しく作成された
Environmentオブジェクト - 関連項目:
Environment
-
create_output_stream
public abstract OutputStream create_output_stream()
新しいorg.omg.CORBA.portable.OutputStreamオブジェクトを生成します。メソッド呼出し時に、このオブジェクトの内部でIDLのメソッドのパラメータを整列化できます。- 戻り値:
- 新しく作成された
org.omg.CORBA.portable.OutputStreamオブジェクト
-
send_multiple_requests_oneway
public abstract void send_multiple_requests_oneway(Request[] req)
応答を前提とせずに、複数の動的(DII)要求を非同期的に送ります。 一方向呼出しは、サーバーに到達するかどうかが保証されないことに注意してください。- パラメータ:
req- リクエスト・オブジェクトの配列
-
send_multiple_requests_deferred
public abstract void send_multiple_requests_deferred(Request[] req)
複数の動的(DII)要求を非同期的に送ります。- パラメータ:
req-Requestオブジェクトの配列
-
poll_next_response
public abstract boolean poll_next_response()
据え置かれた(非同期)呼出しの中に、応答のあったものがあるかどうかを判定します。- 戻り値:
- 応答があった場合は
true、そうでない場合はfalse
-
get_next_response
public abstract Request get_next_response() throws WrongTransaction
応答を受け取った次のRequestのインスタンスを取得します。- 戻り値:
- 応答の準備ができている次の
Requestオブジェクト - 例外:
WrongTransaction- 元のリクエストの送信元とは異なるトランザクション・スコープからget_next_responseメソッドが呼び出された場合。 詳細はOMG Transaction Service仕様を参照。
-
get_primitive_tc
public abstract TypeCode get_primitive_tc(TCKind tcKind)
指定されたプリミティブIDL型を表すTypeCodeオブジェクトを取り出します。- パラメータ:
tcKind- プリミティブ型に対応するTCKindのインスタンス- 戻り値:
- 要求された
TypeCodeオブジェクト
-
create_struct_tc
public abstract TypeCode create_struct_tc(String id, String name, StructMember[] members)
IDLのstructを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたID、名前、メンバーで初期化されます。- パラメータ:
id-structのリポジトリIDname-structの名前members-structのメンバーを記述する配列- 戻り値:
- IDLの
structを記述する新しく生成されたTypeCodeオブジェクト
-
create_union_tc
public abstract TypeCode create_union_tc(String id, String name, TypeCode discriminator_type, UnionMember[] members)
IDLのunionを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたID、名前、判別子の型、メンバーで初期化されます。- パラメータ:
id-unionのリポジトリIDname-unionの名前discriminator_type-union判別子の型members-unionのメンバーを記述する配列- 戻り値:
- IDLの
unionを記述する新しく生成されたTypeCodeオブジェクト
-
create_enum_tc
public abstract TypeCode create_enum_tc(String id, String name, String[] members)
IDLのenumを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたID、名前、メンバーで初期化されます。- パラメータ:
id-enumのリポジトリIDname-enumの名前members-enumのメンバーを記述する配列- 戻り値:
- IDLの
enumを記述する新しく生成されたTypeCodeオブジェクト
-
create_alias_tc
public abstract TypeCode create_alias_tc(String id, String name, TypeCode original_type)
IDLのalias(typedef)を表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたID、名前、元の型で初期化されます。- パラメータ:
id- aliasのリポジトリIDname- aliasの名前original_type- aliasである元の型を記述するTypeCodeオブジェクト- 戻り値:
- IDLの
aliasを記述する新しく生成されたTypeCodeオブジェクト
-
create_exception_tc
public abstract TypeCode create_exception_tc(String id, String name, StructMember[] members)
IDLのexceptionを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたID、名前、メンバーで初期化されます。- パラメータ:
id-exceptionのリポジトリIDname-exceptionの名前members-exceptionのメンバーを記述する配列- 戻り値:
- IDLの
exceptionを記述する新しく生成されたTypeCodeオブジェクト
-
create_interface_tc
public abstract TypeCode create_interface_tc(String id, String name)
IDLのinterfaceを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたIDと名前で初期化されます。- パラメータ:
id- interfaceのリポジトリIDname- interfaceの名前- 戻り値:
- IDLの
interfaceを記述する新しく生成されたTypeCodeオブジェクト
-
create_string_tc
public abstract TypeCode create_string_tc(int bound)
IDLのバウンド形式stringを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたバウンドで初期化されます。このバウンドは、文字列の最大長を表します。 ゼロは、この型コードで記述される文字列がアンバウンド形式であることを示します。- パラメータ:
bound-stringのバウンド。負の値は不可- 戻り値:
- IDLのバウンド形式
stringを記述する新しく生成されたTypeCodeオブジェクト - 例外:
BAD_PARAM- バウンドが負の値の場合
-
create_wstring_tc
public abstract TypeCode create_wstring_tc(int bound)
IDLのバウンド形式wstring(ワイド文字列)を表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたバウンドで初期化されます。このバウンドは、ワイド文字列の最大長を表します。 ゼロは、この型コードで記述される文字列がアンバウンド形式であることを示します。- パラメータ:
bound-wstringのバウンド。負の値は不可- 戻り値:
- IDLのバウンド形式
wstringを記述する新しく生成されたTypeCodeオブジェクト - 例外:
BAD_PARAM- バウンドが負の値の場合
-
create_sequence_tc
public abstract TypeCode create_sequence_tc(int bound, TypeCode element_type)
IDLのsequenceを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定されたバウンドと要素型で初期化されます。- パラメータ:
bound-sequenceのバウンド。アンバウンドの場合は0element_type-sequenceに格納されている要素を記述するTypeCodeオブジェクト- 戻り値:
- IDLの
sequenceを記述する新しく生成されたTypeCodeオブジェクト
-
create_recursive_sequence_tc
@Deprecated public abstract TypeCode create_recursive_sequence_tc(int bound, int offset)
非推奨。代わりにcreate_recursive_tcとcreate_sequence_tcの組み合わせを使用してください。IDLの再帰的sequenceを表すTypeCodeオブジェクトを生成します。次のコードに示すIDLの
structNodeでは、シーケンスを作成するオフセット・パラメータは1になります。Struct Node { long value; Sequence <Node> subnodes; };- パラメータ:
bound- sequenceのバウンド。アンバウンドの場合は0offset- このシーケンスの要素を記述する、囲みTypeCodeオブジェクトのインデックス- 戻り値:
- 再帰的シーケンスを記述する新しく生成された
TypeCodeオブジェクト - 関連項目:
create_recursive_tc,create_sequence_tc
-
create_array_tc
public abstract TypeCode create_array_tc(int length, TypeCode element_type)
IDLのarrayを表すTypeCodeオブジェクトを生成します。TypeCodeオブジェクトは、指定された長さと要素型で初期化されます。- パラメータ:
length-arrayの長さelement_type-arrayに格納されている要素の型を記述するTypeCodeオブジェクト- 戻り値:
- IDLの
arrayを記述する新しく生成されたTypeCodeオブジェクト
-
create_native_tc
public TypeCode create_native_tc(String id, String name)
IDLネイティブ型のTypeCodeオブジェクトを生成します。- パラメータ:
id- ネイティブ型の論理ID。name- ネイティブ型の名前。- 戻り値:
- 要求されたTypeCode。
-
create_abstract_interface_tc
public TypeCode create_abstract_interface_tc(String id, String name)
IDLの抽象インタフェースのTypeCodeオブジェクトを生成します。- パラメータ:
id- 抽象インタフェース型の論理ID。name- 抽象インタフェース型の名前。- 戻り値:
- 要求されたTypeCode。
-
create_fixed_tc
public TypeCode create_fixed_tc(short digits, short scale)
IDL fixed型のTypeCodeオブジェクトを生成します。- パラメータ:
digits- 10進数の合計数を数字で指定。1から31までの論理和である必要がある。scale- 小数点の位置。- 戻り値:
- 要求されたTypeCode。
-
create_value_tc
public TypeCode create_value_tc(String id, String name, short type_modifier, TypeCode concrete_base, ValueMember[] members)
IDL値型の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- 値型のメンバーを格納する配列- 戻り値:
- 要求されたTypeCode
-
create_recursive_tc
public TypeCode create_recursive_tc(String id)
再帰を含むTypeCodeを生成する処理の際に、具象TypeCodeのプレースホルダーとして機能する再帰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- 参照型の論理ID- 戻り値:
- 要求されたTypeCode
-
create_value_box_tc
public TypeCode create_value_box_tc(String id, String name, TypeCode boxed_type)
IDL値ボックスのTypeCodeオブジェクトを生成します。- パラメータ:
id- 値型の論理IDname- 値型の名前boxed_type- 型のTypeCode- 戻り値:
- 要求されたTypeCode
-
create_any
public abstract Any create_any()
kindフィールドがTCKind.tc_nullに設定されたTypecodeオブジェクトを格納するように初期化された、IDLのAnyオブジェクトを生成します。- 戻り値:
- 新しく生成された
Anyオブジェクト
-
get_current
@Deprecated public Current get_current()
非推奨。resolve_initial_referencesを使用します。Currentオブジェクトを取り出します。Currentインタフェースは、トランザクションやセキュリティなどのサービスで使用するスレッド固有の情報を管理するために使います。- 戻り値:
- 新しく生成された
Currentオブジェクト - 関連項目:
CORBAパッケージに実装されていない機能についてのコメント
-
run
public void run()
この操作は、ORBがシャットダウン・プロセスを完了するまで現行のスレッドをブロックし、あるスレッドがshutdownを呼び出すと起動します。 これは、ORBのシャットダウン時に通知を受ける複数のスレッドで使用できます。
-
shutdown
public void shutdown(boolean wait_for_completion)
ORBにシャットダウンを指示します。これにより、破棄の準備として、すべてのオブジェクト・アダプタがシャットダウンされます。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、直ちに復帰する場合はfalse- 例外:
BAD_INV_ORDER- 現在のスレッドが呼出しを処理している場合
-
work_pending
public boolean work_pending()
ORBが処理を実行するためにメイン・スレッドを必要とする場合はtrue、メイン・スレッドを必要としない場合はfalseを返します。- 戻り値:
- 作業待機がある場合、つまりORBが処理を実行するためにメイン・スレッドを必要とする場合は
true、作業待機がなく、メイン・スレッドを必要としない場合はfalse
-
perform_work
public void perform_work()
メイン・スレッドから呼び出されると、実装に依存する処理単位を実行します。 そうでない場合、処理はありません。work_pendingメソッドとperform_workメソッドを連携して使うと、ORBとほかのアクティビティの間でメイン・スレッドを多重化する単純なポーリング・ループを実装できます。
-
get_service_information
public boolean get_service_information(short service_type, ServiceInformationHolder service_info)このORBがサポートするCORBAの機能とサービスに関する情報の取得に使用されます。 情報を要求するサービス・タイプは、CORBAモジュール内で定数により定義される値である、inパラメータservice_typeとして渡されます。 サービス情報をそのタイプで利用できる場合、outパラメータservice_info内で返されます。また、操作は値trueを返します。 要求されたサービス・タイプの情報がない場合、操作はfalseを返します(つまり、このORBではサービスはサポートされない)。- パラメータ:
service_type- リクエストする情報のサービス・タイプを示すshortservice_info- このメソッドで生成されたServiceInformationオブジェクトを保持するServiceInformationHolderオブジェクト- 戻り値:
service_typeのサービス情報が使用できる場合はtrue、リクエストされたサービス・タイプの情報がない場合はfalse- 関連項目:
CORBAパッケージに実装されていない機能についてのコメント
-
create_dyn_any
@Deprecated public DynAny create_dyn_any(Any value)
非推奨。代わりに、新しいDynAnyFactory APIを使用してください指定されたAnyオブジェクトからDynAnyオブジェクトを新たに生成します。- パラメータ:
value- 新規DynAnyオブジェクトの生成元のAnyオブジェクト- 戻り値:
- 指定された
Anyオブジェクトから生成された新規DynAnyオブジェクト - 関連項目:
CORBAパッケージに実装されていない機能についてのコメント
-
create_basic_dyn_any
@Deprecated public DynAny create_basic_dyn_any(TypeCode type) throws InconsistentTypeCode
非推奨。代わりに、新しいDynAnyFactory APIを使用してください指定されたTypeCodeオブジェクトから基本DynAnyオブジェクトを生成します。- パラメータ:
type- 新規DynAnyオブジェクトの生成元のTypeCodeオブジェクト- 戻り値:
- 指定された
TypeCodeオブジェクトから生成された新規DynAnyオブジェクト - 例外:
InconsistentTypeCode- 指定されたTypeCodeオブジェクトが、オペレーションとの一貫性を保持しない場合。- 関連項目:
CORBAパッケージに実装されていない機能についてのコメント
-
create_dyn_struct
@Deprecated public DynStruct create_dyn_struct(TypeCode type) throws InconsistentTypeCode
非推奨。代わりに、新しいDynAnyFactory APIを使用してください指定されたTypeCodeオブジェクトからDynStructオブジェクトを新たに生成します。- パラメータ:
type- 新規DynStructオブジェクトの生成元のTypeCodeオブジェクト- 戻り値:
- 指定された
TypeCodeオブジェクトから生成された新規DynStructオブジェクト - 例外:
InconsistentTypeCode- 指定されたTypeCodeオブジェクトが、オペレーションとの一貫性を保持しない場合。- 関連項目:
CORBAパッケージに実装されていない機能についてのコメント
-
create_dyn_sequence
@Deprecated public DynSequence create_dyn_sequence(TypeCode type) throws InconsistentTypeCode
非推奨。代わりに、新しいDynAnyFactory APIを使用してください指定されたTypeCodeオブジェクトからDynSequenceオブジェクトを新たに生成します。- パラメータ:
type- 新規DynSequenceオブジェクトの生成元のTypeCodeオブジェクト- 戻り値:
- 指定された
TypeCodeオブジェクトから生成された新規DynSequenceオブジェクト - 例外:
InconsistentTypeCode- 指定されたTypeCodeオブジェクトが、オペレーションとの一貫性を保持しない場合。- 関連項目:
CORBAパッケージに実装されていない機能についてのコメント
-
create_dyn_array
@Deprecated public DynArray create_dyn_array(TypeCode type) throws InconsistentTypeCode
非推奨。代わりに、新しいDynAnyFactory APIを使用してください指定されたTypeCodeオブジェクトからDynArrayオブジェクトを新たに生成します。- パラメータ:
type- 新規DynArrayオブジェクトの生成元のTypeCodeオブジェクト- 戻り値:
- 指定された
TypeCodeオブジェクトから生成された新規DynArrayオブジェクト - 例外:
InconsistentTypeCode- 指定されたTypeCodeオブジェクトが、オペレーションとの一貫性を保持しない場合。- 関連項目:
CORBAパッケージに実装されていない機能についてのコメント
-
create_dyn_union
@Deprecated public DynUnion create_dyn_union(TypeCode type) throws InconsistentTypeCode
非推奨。代わりに、新しいDynAnyFactory APIを使用してください指定されたTypeCodeオブジェクトからDynUnionオブジェクトを新たに生成します。- パラメータ:
type- 新規DynUnionオブジェクトの生成元のTypeCodeオブジェクト- 戻り値:
- 指定された
TypeCodeオブジェクトから生成された新規DynUnionオブジェクト - 例外:
InconsistentTypeCode- 指定されたTypeCodeオブジェクトが、オペレーションとの一貫性を保持しない場合。- 関連項目:
CORBAパッケージに実装されていない機能についてのコメント
-
create_dyn_enum
@Deprecated public DynEnum create_dyn_enum(TypeCode type) throws InconsistentTypeCode
非推奨。代わりに、新しいDynAnyFactory APIを使用してください指定されたTypeCodeオブジェクトからDynEnumオブジェクトを新たに生成します。- パラメータ:
type- 新規DynEnumオブジェクトの生成元のTypeCodeオブジェクト- 戻り値:
- 指定された
TypeCodeオブジェクトから生成された新規DynEnumオブジェクト - 例外:
InconsistentTypeCode- 指定されたTypeCodeオブジェクトが、オペレーションとの一貫性を保持しない場合。- 関連項目:
CORBAパッケージに実装されていない機能についてのコメント
-
create_policy
public Policy create_policy(int type, Any val) throws PolicyError
指定された初期状態で特定の型のポリシー・オブジェクトのインスタンスを新規作成するために呼び出されます。create_policyが、ポリシーのリクエストされたタイプと内容を解釈できないために新しいポリシー・オブジェクトのインスタンス化に失敗した場合、適切な理由を保持するPolicyError例外がスローされます。- パラメータ:
type- 生成するポリシー・オブジェクトのPolicyTypeval- 生成するPolicyオブジェクトの初期状態設定に使用される値- 戻り値:
typeパラメータで指定されたタイプでvalパラメータで指定された状態に初期化される、新規作成されたPolicyオブジェクトへの参照- 例外:
PolicyError- リクエストされたポリシーがサポートされていないか、またはリクエストされたポリシーの初期状態がサポートされていない場合。
-
-