- 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オブジェクト実装のインスタンス)間での接続の確立と切離しを行う
- 次のようなオブジェクトを生成する
TypeCode
Any
NamedValue
Context
Environment
- これらのオブジェクトが格納されているリスト(
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メソッド インスタンス・メソッド 抽象メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 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
を返します。
-
-
-
メソッドの詳細
-
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の
struct
Nodeでは、シーケンスを作成するオフセット・パラメータは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
- リクエストする情報のサービス・タイプを示すshort
service_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
- 生成するポリシー・オブジェクトのPolicyType
val
- 生成するPolicy
オブジェクトの初期状態設定に使用される値- 戻り値:
type
パラメータで指定されたタイプでval
パラメータで指定された状態に初期化される、新規作成されたPolicy
オブジェクトへの参照- 例外:
PolicyError
- リクエストされたポリシーがサポートされていないか、またはリクエストされたポリシーの初期状態がサポートされていない場合。
-
-