| Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]()
|
| 第5章 アプリケーションの開発(C++言語) | > 5.2 データ型に対するマッピング |
IDL言語で文字列型stringを指定した場合、C++言語ではCORBA::Char *にマッピングされます。
以降では、以下のIDL定義例をもとに説明します。
module ODsample{
interface stringtest{
string op1(in string str1, out string str2, inout string str3);
};
};
CORBA::Char *
ODsample::stringtest::op1(
const CORBA::Char *str1, // inパラメタ
CORBA::Char *&str2, // outパラメタ
CORBA::Char *&str3, // inoutパラメタ
CORBA::Environment &env ) // 例外情報
クライアントアプリケーションのパラメタの扱いについて、以下に示します。
|
パラメタ |
サーバへ渡すパラメタ |
サーバから渡されたパラメタ |
|
in |
CORBA::string_alloc()で領域を獲得します。 |
− |
|
inout |
(inパラメタと同じ) |
領域はスタブで自動的に獲得されます。 |
|
out |
− |
(inoutパラメタと同じ) |
クライアントおよびスタブで獲得した領域は、不要になった時点でCORBA::string_free()で解放する必要があります。
以下にクライアントアプリケーションでの処理例を示します。
CORBA::Environment env;
CORBA::Char *str1, *str2, *str3, *ret;
// inパラメタ
str1 = CORBA::string_alloc(2); // 領域獲得
strcpy( str1 ,"IN" ); // パラメタ設定
// inoutパラメタ
str3 = CORBA::string_alloc(7); // 領域獲得
strcpy( str3 ,"INOUT:1" ); // パラメタ設定
// サーバ呼出し
ret = obj->op1( str1, str2, str3, env );
// 領域解放
CORBA::string_free( ret ); // 復帰パラメタ
CORBA::string_free( str1 ); // inパラメタ
CORBA::string_free( str2 ); // outパラメタ
CORBA::string_free( str3 ); // inoutパラメタ
目次
索引
![]()
|