モジュール java.corba
パッケージ 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. 次のようなオブジェクトを生成する
      • TypeCode
      • Any
      • NamedValue
      • Context
      • Environment
      • これらのオブジェクトが格納されているリスト(NVListなど)
    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. システムのプロパティがあればチェックイン
    4. user.homeディレクトリにorb.propertiesファイルがあればチェックイン
    5. ランタイム・イメージに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の世界に対するブートストラップ呼出しです。

    実装上の注意:
    シングルトン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

        public ORB​()
    • メソッドの詳細

      • init

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

        この引数なしの形式のinitメソッドは主に、TypeCodeオブジェクトのファクトリとして使用されます。Helperクラスはこのオブジェクトを使用して、typeメソッドを実装します。 また、unionのラベル(unionTypeCodeオブジェクトの作成の一部として)を記述するために使用される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インスタンスで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)コンテキスト・プロパティとして機能します。 それ自体で使用することも、NVListオブジェクト内の要素として使用することもできます。

        パラメータ:
        s - NamedValueオブジェクトの名前
        any - NamedValueオブジェクトに挿入されるAny
        flags - NamedValueの引数モード・フラグ。ARG_IN.valueARG_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のリポジトリ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 - sequenceのバウンド。アンバウンドの場合は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パッケージに実装されていない機能についてのコメント
      • 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_policy

        public Policy create_policy​(int type,
                                    Any val)
                             throws PolicyError
        指定された初期状態で特定の型のポリシー・オブジェクトのインスタンスを新規作成するために呼び出されます。 create_policyが、ポリシーのリクエストされたタイプと内容を解釈できないために新しいポリシー・オブジェクトのインスタンス化に失敗した場合、適切な理由を保持するPolicyError例外がスローされます。
        パラメータ:
        type - 生成するポリシー・オブジェクトのPolicyType
        val - 生成するPolicyオブジェクトの初期状態設定に使用される値
        戻り値:
        typeパラメータで指定されたタイプでvalパラメータで指定された状態に初期化される、新規作成されたPolicyオブジェクトへの参照
        例外:
        PolicyError - リクエストされたポリシーがサポートされていないか、またはリクエストされたポリシーの初期状態がサポートされていない場合。