Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
|
目次
索引

|
5.2.10 属性宣言(attribute)のマッピング
(1)IDLマッピング
IDL言語で属性宣言(attribute)を定義すると、オブジェクトのデータ設定/取得を行う関数(関数名はIDLで定義された変数名)にマッピングされます。
以降では、以下のIDL定義例をもとに説明します。
IDL言語
module ODsample{
interface attrtest{
attribute long para1;
attribute string para2;
readonly attribute long para3;
};
};
C++言語
CORBA::Long para1;
av->para1(100,*env); // データ設定関数
para1 = av->para1(*env); // データ取得関数
CORBA::Char* p;
p = CORBA::string_alloc(7);
av->para2( p,*env ); // データ設定関数
p = av->para2( *env ); // データ取得関数
CORBA::Long para3;
para3 = av->para3(*env); // データ取得関数
(2)クライアントアプリケーションで扱うパラメタ
データ設定関数でデータ設定に使用するデータ域はinパラメタと同様に扱われます。また、データ取得関数でデータ取得に使用するデータ域は復帰パラメタと同様に扱われます。このため、可変長データでは、その領域が不要になった時点で領域を解放する必要があります。
ODsample::attrtest_var av
env = new CORBA::Environment;
CORBA::Long para1;
para1 = av->para1(*env);
av->para1(100, *env);
para1 = av->para1(*env);
cout << para1 << endl;
CORBA::Char* p;
p = CORBA::string_alloc(7);
strcpy( p, "STRING" );
av->para2( p,*env );
CORBA::string_free( p );
p = av->para2( *env );
cout << p << endl;
CORBA::string_free( p );
para3 = av->para3(*env);
cout << para3 << endl;
Copyright 2006 FUJITSU LIMITED