|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectorg.omg.CORBA.ORB
public abstract class ORB
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 で内部的に使用されるため、一般のプログラマが見ることはありません。
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 オブジェクトを生成します。 |
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 |
| コンストラクタの詳細 |
|---|
public ORB()
| メソッドの詳細 |
|---|
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 オブジェクトNVList
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.value、ARG_OUT.value、ARG_INOUT.value のうちの 1 つ
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、そうでない場合は false
public 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 - シーケンスのバウンド。アンバウンドの場合は 0offset - このシーケンスの要素を記述する、囲み TypeCode オブジェクトのインデックス
TypeCode オブジェクトcreate_recursive_tc,
create_sequence_tc
public 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 - ネイティブ型の論理 IDname - ネイティブ型の名前
public TypeCode create_abstract_interface_tc(String id,
String name)
TypeCode オブジェクトを生成します。
id - 抽象インタフェース型の論理 IDname - 抽象インタフェース型の名前
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 - 値型の論理 IDname - 値型の名前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 - 参照型の論理 ID
public TypeCode create_value_box_tc(String id,
String name,
TypeCode boxed_type)
TypeCode オブジェクトを生成します。
id - 値型の論理 IDname - 値型の名前boxed_type - 型の TypeCode
public abstract Any create_any()
kind フィールドが TCKind.tc_null に設定された TypeCode オブジェクトを格納するように初期化された、IDL の Any オブジェクトを生成します。
Any オブジェクト@Deprecated public Current get_current()
resolve_initial_references を使用してください。
Current オブジェクトを取り出します。Current インタフェースは、トランザクションやセキュリティなどのサービスで使用するスレッド固有の情報を管理するために使います。
Current オブジェクトCORBA package comments for unimplemented featurespublic 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、ただちに復帰する場合は false
BAD_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 package comments for unimplemented features@Deprecated public DynAny create_dyn_any(Any value)
Any オブジェクトから DynAny オブジェクトを新たに生成します。
value - 新規 DynAny オブジェクトの生成元の Any オブジェクト
Any オブジェクトから生成された新規 DynAny オブジェクトCORBA package comments for unimplemented features
@Deprecated
public DynAny create_basic_dyn_any(TypeCode type)
throws InconsistentTypeCode
TypeCode オブジェクトから基本 DynAny オブジェクトを生成します。
type - 新規 DynAny オブジェクトの生成元の TypeCode オブジェクト
TypeCode オブジェクトから生成された新規 DynAny オブジェクト
InconsistentTypeCode - 指定された TypeCode オブジェクトが、操作との一貫性を保持しない場合CORBA package comments for unimplemented features
@Deprecated
public DynStruct create_dyn_struct(TypeCode type)
throws InconsistentTypeCode
TypeCode オブジェクトから DynStruct オブジェクトを新たに生成します。
type - 新規 DynStruct オブジェクトの生成元の TypeCode オブジェクト
TypeCode オブジェクトから生成された新規 DynStruct オブジェクト
InconsistentTypeCode - 指定された TypeCode オブジェクトが、操作との一貫性を保持しない場合CORBA package comments for unimplemented features
@Deprecated
public DynSequence create_dyn_sequence(TypeCode type)
throws InconsistentTypeCode
TypeCode オブジェクトから DynSequence オブジェクトを新たに生成します。
type - 新規 DynSequence オブジェクトの生成元の TypeCode オブジェクト
TypeCode オブジェクトから生成された新規 DynSequence オブジェクト
InconsistentTypeCode - 指定された TypeCode オブジェクトが、操作との一貫性を保持しない場合CORBA package comments for unimplemented features
@Deprecated
public DynArray create_dyn_array(TypeCode type)
throws InconsistentTypeCode
TypeCode オブジェクトから DynArray オブジェクトを新たに生成します。
type - 新規 DynArray オブジェクトの生成元の TypeCode オブジェクト
TypeCode オブジェクトから生成された新規 DynArray オブジェクト
InconsistentTypeCode - 指定された TypeCode オブジェクトが、操作との一貫性を保持しない場合CORBA package comments for unimplemented features
@Deprecated
public DynUnion create_dyn_union(TypeCode type)
throws InconsistentTypeCode
TypeCode オブジェクトから DynUnion オブジェクトを新たに生成します。
type - 新規 DynUnion オブジェクトの生成元の TypeCode オブジェクト
TypeCode オブジェクトから生成された新規 DynUnion オブジェクト
InconsistentTypeCode - 指定された TypeCode オブジェクトが、操作との一貫性を保持しない場合CORBA package comments for unimplemented features
@Deprecated
public DynEnum create_dyn_enum(TypeCode type)
throws InconsistentTypeCode
TypeCode オブジェクトから DynEnum オブジェクトを新たに生成します。
type - 新規 DynEnum オブジェクトの生成元の TypeCode オブジェクト
TypeCode オブジェクトから生成された新規 DynEnum オブジェクト
InconsistentTypeCode - 指定された TypeCode オブジェクトが、操作との一貫性を保持しない場合CORBA package comments for unimplemented features
public Policy create_policy(int type,
Any val)
throws PolicyError
type - 生成するポリシーオブジェクトの PolicyTypeval - 生成する Policy オブジェクトの初期状態設定に使用される値
org.omg.CORBA.PolicyError - 要求されたポリシーがサポートされないか、ポリシーの要求された初期状態がサポートされない場合
PolicyError
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。