Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
第9章 COM/CORBA連携プログラミング | > 9.4 基本データ型の指定方法 |
any型を持つサーバアプリケーションを呼び出す場合は、変数をObject型で宣言し、データ型のオブジェクトリファレンスをCreateType関数またはCreateTypeById関数で検索し、valueやtypeはそのオブジェクトのプロパティとして扱います。any型データのTypeCodeプロパティに値を設定する場合は、サーバにTypeCodeを返すオペレーションを用意し、返された値を設定します。valueプロパティにはデータ型に応じた方法で値を設定します。
any型データのVisual Basicで設定する使用例を以下に示します。
module mod { typedef any typeany; // any型 interface intf { TypeCode GetTypeCode();// TypeCodeプロパティに設定するTypeCodeを返す関数 any op( in any a ); // any型のパラメタを持つop関数 // any型の復帰値 }; };
Dim factory As Object // OLE-CORBAゲートウェイのインスタンス Dim obj As Object // サーバのオブジェクトリファレンス Set factory = CreateObject("CORBA.Factory") // OLE-CORBAゲートウェイの起動 Set obj = factory.GetObject("example") // オブジェクトの検索 Dim anydata As Object // データ型のリファレンス(パラメタ受渡し用) Dim anydata1 As Object // データ型のリファレンス(復帰値用) Dim obj3 As Object // データ型のリファレンス(TypeCode用) Set anydata =factory.CreateType(obj, "typeany") // データ型のリファレンスの検索 Set obj3= obj.GetTypeCode() // TypeCodeオブジェクトの獲得 anydata.TypeCode = obj3 // TypeCodeの設定 anydata.Value = &H80000000 // データの設定 anydata1 =obj.op(anydata) // op関数の呼び出し
any型データから値を取り出す場合は、any型データのTypeCodeメンバに対してkind関数を呼び出し、データの型を取り出します。取り出したデータ型に対する値をvalueメンバから取り出します。any型データのVisual Basicでの使用例を以下に示します。
anydata = obj.op(anydata) // op関数の呼び出し kind = anydata.TypeCode.kind // TypeCodeの取り出し Select Case kind Case 2 'short // データ型がshortの処理 s = anydata.Value Case 15 'struct // データ型がstructの処理 l = anydata.Value.d1 str = anydata.Value.d2 Case 16 'union // データ型がunionの処理 dic = anydata.Value.UNION_d Select Case dic Case 1 l = anydata.Value.d1 Case 2 str = anydata.Value.d2 End Select End Select
目次
索引
![]() ![]() |