| Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]()
|
| 付録J 旧互換機能 | > J.1 COM/CORBA連携プログラミング | > J.1.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
目次
索引
![]()
|