|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--org.omg.CORBA.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)
指定された TypeCode オブジェクトから基本 DynAny オブジェクトを生成します。
|
abstract ContextList |
create_context_list()
空の ContextList オブジェクトを生成します。 |
DynAny |
create_dyn_any(Any value)
指定された Any オブジェクトから DynAny オブジェクトを新たに生成します。
|
DynArray |
create_dyn_array(TypeCode type)
指定された TypeCode オブジェクトから DynArray オブジェクトを新たに生成します。
|
DynEnum |
create_dyn_enum(TypeCode type)
指定された TypeCode オブジェクトから DynEnum オブジェクトを新たに生成します。
|
DynSequence |
create_dyn_sequence(TypeCode type)
指定された TypeCode オブジェクトから DynSequence オブジェクトを新たに生成します。
|
DynStruct |
create_dyn_struct(TypeCode type)
指定された TypeCode オブジェクトから DynStruct オブジェクトを新たに生成します。
|
DynUnion |
create_dyn_union(TypeCode type)
指定された TypeCode オブジェクトから DynUnion オブジェクトを新たに生成します。
|
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
オブジェクトの推奨数
NVList
NVList
public 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
オブジェクトNamedValue
public abstract ExceptionList create_exception_list()
ExceptionList
オブジェクトを生成します。
ExceptionList
オブジェクトpublic abstract ContextList create_context_list()
ContextList
オブジェクトを生成します。
ContextList
オブジェクトContextList
,
Context
public abstract Context get_default_context()
Context
オブジェクトを取得します。
Context
オブジェクトContext
public abstract Environment create_environment()
Environment
オブジェクトを生成します。
Environment
オブジェクトEnvironment
public 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
オブジェクト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
オブジェクトpublic Current get_current()
resolve_initial_references
を使用してください。
Current
オブジェクトを取り出します。Current
インタフェースは、トランザクションやセキュリティなどのサービスで使用するスレッド固有の情報を管理するために使います。
Current
オブジェクトCORBA
パッケージに実装されていない機能についてのコメントpublic void run()
shutdown
を呼び出すと起動します。これは、ORB のシャットダウン時に通知を受ける複数のスレッドで使用できます。
public void shutdown(boolean wait_for_completion)
wait_for_completion
パラメータが true の場合、このオペレーションはすべての ORB 処理 (現在実行中の要求、オブジェクトの非アクティブ化、その他のオブジェクトアダプタのオペレーションなど) が完了するまでブロックされます。アプリケーションが現在呼び出しを処理しているスレッドでこれを実行した場合、ブロックによりデッドロックとなるので、OMG マイナーコード 3 で BAD_INV_ORDER
システム例外がスローされます。
wait_for_completion
パラメータが FALSE
の場合、復帰時にシャットダウンが完了していない場合があります。
ORB がシャットダウンの処理中でも、ORB は通常通りに動作し、すべての要求が完了するまで受信および送信要求を処理します。ORB がシャットダウンすると、オブジェクト参照管理オペレーションのみが ORB またはそれから取得される任意のオブジェクト参照で呼び出すことができます。アプリケーションは、ORB 自体に対して destroy
オペレーションを呼び出すこともできます。その他のオペレーションを呼び出すと、OMG マイナーコード 4 で BAD_INV_ORDER
システム例外がスローされます。
shutdown
が呼び出された後で、ORB.run
メソッドが復帰します。
wait_for_completion
- シャットダウンが完了するまで呼び出しをブロックする場合は true
、直ちに復帰する場合は false
BAD_INV_ORDER
- 現在のスレッドが呼び出しを処理している場合public boolean work_pending()
true
、メインスレッドを必要としない場合は false
を返します。
true
、作業待機がなく、メインスレッドを必要としない場合は false
public void perform_work()
work_pending
メソッドと perform_work
メソッドを連携して使うと、ORB とほかのアクティビティの間でメインスレッドを多重化する単純なポーリングループを実装できます。
public boolean get_service_information(short service_type, ServiceInformationHolder service_info)
service_type
- 要求する情報のサービスタイプを示す short
service_info
- このメソッドで生成された ServiceInformation
オブジェクトを保持する ServiceInformationHolder
オブジェクト
true
、要求されたサービスタイプの情報がない場合は falseCORBA
パッケージに実装されていない機能についてのコメントpublic DynAny create_dyn_any(Any value)
Any
オブジェクトから DynAny
オブジェクトを新たに生成します。
value
- 新規 DynAny
オブジェクトの生成元の Any
オブジェクト
Any
オブジェクトから生成された新規 DynAny
オブジェクトCORBA
パッケージに実装されていない機能についてのコメント ,
これらの API を置き換える DynamicAny
パッケージpublic DynAny create_basic_dyn_any(TypeCode type) throws InconsistentTypeCode
TypeCode
オブジェクトから基本 DynAny
オブジェクトを生成します。
type
- 新規 DynAny
オブジェクトの生成元の TypeCode
オブジェクト
TypeCode
オブジェクトから生成された新規 DynAny
オブジェクト
InconsistentTypeCode
- 指定された TypeCode
オブジェクトが、オペレーションとの一貫性を保持しない場合CORBA
パッケージに実装されていない機能についてのコメント ,
これらの API を置き換える DynamicAny
パッケージpublic DynStruct create_dyn_struct(TypeCode type) throws InconsistentTypeCode
TypeCode
オブジェクトから DynStruct
オブジェクトを新たに生成します。
type
- 新規 DynStruct
オブジェクトの生成元の TypeCode
オブジェクト
TypeCode
オブジェクトから生成された新規 DynStruct
オブジェクト
InconsistentTypeCode
- 指定された TypeCode
オブジェクトが、オペレーションとの一貫性を保持しない場合CORBA
パッケージに実装されていない機能についてのコメント ,
これらの API を置き換える DynamicAny
パッケージpublic DynSequence create_dyn_sequence(TypeCode type) throws InconsistentTypeCode
TypeCode
オブジェクトから DynSequence
オブジェクトを新たに生成します。
type
- 新規 DynSequence
オブジェクトの生成元の TypeCode
オブジェクト
TypeCode
オブジェクトから生成された新規 DynSequence
オブジェクト
InconsistentTypeCode
- 指定された TypeCode
オブジェクトが、オペレーションとの一貫性を保持しない場合CORBA
パッケージに実装されていない機能についてのコメント ,
これらの API を置き換える DynamicAny
パッケージpublic DynArray create_dyn_array(TypeCode type) throws InconsistentTypeCode
TypeCode
オブジェクトから DynArray
オブジェクトを新たに生成します。
type
- 新規 DynArray
オブジェクトの生成元の TypeCode
オブジェクト
TypeCode
オブジェクトから生成された新規 DynArray
オブジェクト
InconsistentTypeCode
- 指定された TypeCode
オブジェクトが、オペレーションとの一貫性を保持しない場合CORBA
パッケージに実装されていない機能についてのコメント ,
これらの API を置き換える DynamicAny
パッケージpublic DynUnion create_dyn_union(TypeCode type) throws InconsistentTypeCode
TypeCode
オブジェクトから DynUnion
オブジェクトを新たに生成します。
type
- 新規 DynUnion
オブジェクトの生成元の TypeCode
オブジェクト
TypeCode
オブジェクトから生成された新規 DynUnion
オブジェクト
InconsistentTypeCode
- 指定された TypeCode
オブジェクトが、オペレーションとの一貫性を保持しない場合CORBA
パッケージに実装されていない機能についてのコメント ,
これらの API を置き換える DynamicAny
パッケージpublic DynEnum create_dyn_enum(TypeCode type) throws InconsistentTypeCode
TypeCode
オブジェクトから DynEnum
オブジェクトを新たに生成します。
type
- 新規 DynEnum
オブジェクトの生成元の TypeCode
オブジェクト
TypeCode
オブジェクトから生成された新規 DynEnum
オブジェクト
InconsistentTypeCode
- 指定された TypeCode
オブジェクトが、オペレーションとの一貫性を保持しない場合CORBA
パッケージに実装されていない機能についてのコメント ,
これらの API を置き換える DynamicAny
パッケージpublic Policy create_policy(int type, Any val) throws PolicyError
type
- 生成するポリシーオブジェクトの PolicyTypeval
- 生成する Policy オブジェクトの初期状態設定に使用される値
org.omg.CORBA.PolicyError
- 要求されたポリシーがサポートされないか、ポリシーの要求された初期状態がサポートされない場合
PolicyError
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.