JavaTM 2 Platform
Standard Ed. 5.0

org.omg.CORBA
クラス ORB

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 で内部的に使用されるため、一般のプログラマが見ることはありません。

  1. 定義済みのプロパティと環境パラメータの値を指定して ORB 実装を初期化する
  2. resolve_initial_references メソッドを使って、ネームサービスなどのサービスへの初期オブジェクト参照を取得する
  3. オブジェクト参照と文字列の間の変換を行う
  4. ORB とサーバント (CORBA オブジェクト実装のインスタンス) 間での接続の確立と切り離しを行う
  5. 次のようなオブジェクトを生成する
  6. 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 実装のクラス名が次の標準検索順で検索されます。

  1. Applet パラメータまたはアプリケーション文字列配列があればチェックインする
  2. プロパティパラメータがあればチェックインする
  3. System プロパティにチェックインする
  4. user.home ディレクトリにある orb.properties ファイルにチェックインする (存在する場合)
  5. java.home/lib ディレクトリにある orb.properties ファイルにチェックインする (存在する場合)
  6. ハードコードされたデフォルト動作に戻る (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 の世界に対するブートストラップ呼び出しです。

導入されたバージョン:
JDK1.2

コンストラクタの概要
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 オブジェクトを生成します。
 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 にシャットダウンを指示し、これにより、破棄の準備としてすべてのオブジェクトアダプタがシャットダウンされます。
abstract  Object string_to_object(String str)
          object_to_string メソッドにより生成された文字列を変換して CORBA オブジェクト参照に戻します。
 boolean work_pending()
          ORB が処理を実行するためにメインスレッドを必要とする場合は true、メインスレッドを必要としない場合は false を返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

ORB

public ORB()
メソッドの詳細

init

public static ORB init()
ORB 単体オブジェクトを返します。このメソッドは常に、同じ ORB のインスタンスを返します。このインスタンスは、org.omg.CORBA.ORBSingletonClass システムプロパティが記述するクラスのインスタンスです。

この引数なしの形式の init メソッドは主に、TypeCode オブジェクトのファクトリとして使用されます。Helper クラスはこのオブジェクトを使って、type メソッドを実装します。また、unionTypeCode オブジェクトを作成するときに、union ラベルを記述するために使う Any オブジェクトの作成にも使用されます。

このメソッドはアプレットで使うことは意図されていません。したがって、アプレット環境で呼び出された場合、返される ORB は制約付きであり、TypeCode オブジェクトのファクトリとしてしか使用できません。このため、このメソッドにより作成される TypeCode オブジェクトはすべて、信頼できないアプレット間でも安全に共有できます。

アプレットからこのメソッドを使って ORB を作成する場合、TypeCode オブジェクトの作成以外の目的でこのメソッドが呼び出されると、システム例外がスローされます。

戻り値:
単独 ORB

init

public static ORB init(String[] args,
                       Properties props)
スタンドアロンアプリケーション用に、新しい ORB のインスタンスを生成します。このメソッドを呼び出せるのはアプリケーションだけです。このメソッドは、呼び出されるたびに新しいフル機能の ORB オブジェクトを返します。

パラメータ:
args - アプリケーションの main メソッドのコマンド行引数。null も可
props - アプリケーション固有のプロパティ。null も可
戻り値:
新しく生成された ORB のインスタンス

init

public static ORB init(Applet app,
                       Properties props)
アプレット用に、新しい ORB のインスタンスを生成します。このメソッドを呼び出せるのはアプレットだけです。このメソッドは、呼び出されるたびに新しいフル機能の 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 インスタンスで shutdowndestroy を必ず呼び出す必要があります。

例外:
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) コンテキストプロパティとして機能します。NamedValue オブジェクト自体で使用することも、NVList オブジェクト内の要素として使用することもできます。

パラメータ:
s - NamedValue オブジェクトの名前
any - NamedValue オブジェクトに挿入される Any
flags - NamedValue の引数モードフラグ。ARG_IN.valueARG_OUT.valueARG_INOUT.value のうちの 1 つ
戻り値:
新しく生成された 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 のリポジトリ ID
name - 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 のリポジトリ ID
name - 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 のリポジトリ ID
name - 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 のリポジトリ ID
name - 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 のリポジトリ ID
name - 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 のリポジトリ ID
name - 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 のバウンド。アンバウンドの場合は 0
element_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 - シーケンスのバウンド。アンバウンドの場合は 0
offset - このシーケンスの要素を記述する、囲み 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 - 値型の論理 ID
name - 値型の名前
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 package comments for unimplemented features

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 package comments for unimplemented features

create_dyn_any

@Deprecated
public DynAny create_dyn_any(Any value)
推奨されていません。 代わりに新しい DynAnyFactory API を使用してください。

指定された Any オブジェクトから DynAny オブジェクトを新たに生成します。

パラメータ:
value - 新規 DynAny オブジェクトの生成元の Any オブジェクト
戻り値:
指定された Any オブジェクトから生成された新規 DynAny オブジェクト
関連項目:
CORBA package comments for unimplemented features

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 package comments for unimplemented features

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 package comments for unimplemented features

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 package comments for unimplemented features

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 package comments for unimplemented features

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 package comments for unimplemented features

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 package comments for unimplemented features

create_policy

public Policy create_policy(int type,
                            Any val)
                     throws PolicyError
指定された初期状態で特定の型のポリシーオブジェクトのインスタンスを新規作成するために呼び出されます。create_policy が、ポリシーの要求されたタイプと内容を解釈できないために新しいポリシーオブジェクトのインスタンス化に失敗した場合、適切な理由を保持する PolicyError 例外がスローされます。

パラメータ:
type - 生成するポリシーオブジェクトの PolicyType
val - 生成する Policy オブジェクトの初期状態設定に使用される値
戻り値:
type パラメータで指定されたタイプで val パラメータで指定された状態に初期化される、新規作成された Policy オブジェクトへの参照
例外:
org.omg.CORBA.PolicyError - 要求されたポリシーがサポートされないか、ポリシーの要求された初期状態がサポートされない場合
PolicyError

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。