4.4.1.30. CORBA::StringValueクラス |
文字列を値として保持するバリューボックスクラスです。
また、下記の関数以外にもCORBA::ValueBaseクラスの各関数が利用できます。
StringValue | デフォルトコンストラクタ |
StringValue(const CORBA::StringValue&) | コピーコンストラクタ |
StringValue(char*) StringValue(const char*) StringValue(const CORBA::String_var&) |
保持している文字列の設定を行うコンストラクタ |
~StringValue | デストラクタ |
operator=(char*) operator=(const char*) operator=(const CORBA::StringValue&) |
文字列代入オペレータ |
operator[](CORBA::ULong) | 保持している文字列のindex番目の要素の参照をchar&型で返す |
operator[](CORBA::ULong) const | 保持している文字列のindex番目の要素をchar型で返す |
_value(char*) _value(const char*) _value(const CORBA::String_var&) |
保持する文字列を変更する |
_value() |
保持している文字列を取得する |
_boxed_in() _boxed_inout() _boxed_out() |
保持する文字列をオペレーション引数の属性に応じた型で返す |
CORBA::StringValue::StringValue - デフォルトコンストラクタ
#include <orb.h> CORBA::StringValue::StringValue();
CORBA::StringValueのインスタンスを生成するときに使用します。
保持する文字列の初期値は空文字列("")です。
例)
CORBA::StringValue* sv = new CORBA::StringValue();
ありません。
起こりません。
CORBA::StringValue::StringValue(const CORBA::StringValue&)
- コピーコンストラクタ
#include <orb.h> CORBA::StringValue::StringValue(const CORBA::StringValue& s);
CORBA::StringValueのインスタンスを作成し、引数のデータをコピーします。
例)
CORBA::StringValue* sv = ...; CORBA::StringValue* sv2 = new CORBA::StringValue(sv);
ありません。
コピーコンストラクタは内部で文字列をコピーするため、メモリ不足によるエラーが起こることがあります。この場合、文字列としてヌル・ポインタが設定されます。
CORBA::StringValue::StringValue(char*)
CORBA::StringValue::StringValue(const char*)
CORBA::StringValue::StringValue(const CORBA::StringValue&)
- 文字列の設定を行うコンストラクタ
#include <orb.h> CORBA::StringValue::StringValue(char* p); CORBA::StringValue::StringValue(const char* p); CORBA::StringValue::StringValue(const CORBA::String_var& p);
CORBA::StringValueのインスタンスを作成し、引数の文字列を保持します。
引数がchar*型のときは、引数pの所有権がCORBA::StringValueのインスタンスに移ります。 したがって、引数に渡した後で値を操作してはいけません。引数に渡せるのはCORBA::string_alloc(CORBA::ULong)もしくは CORBA::string_dup(const char*)およびオペレーションの戻り値だけです。
引数がconst char*やconst CORBA::String_var&のときは、引数の文字列のコピーが生成され、 CORBA::StringValueのインスタンスは生成したコピーを保持します。
例)
const char* cs = "const char* string"; char* sptr = CORBA::string_dup(cs); CORBA::String_var svar = CORBA::string_dup(cs); CORBA::StringValue* sv1 = new CORBA::StringValue(sptr); // char* CORBA::StringValue* sv2 = new CORBA::StringValue(cs); // const char* CORBA::StringValue* sv3 = new CORBA::StringValue(svar); // const CORBA::String_var&
ありません。
CORBA::StringValue(const char*)およびCORBA::StringValue(const CORBA::String_var&)は内部で文字列をコピーするため、 メモリ不足によるエラーが起こることがあります。この場合、文字列としてヌル・ポインタが設定されます。
CORBA::StringValue::~StringValue - デストラクタ
#include <orb.h> CORBA::StringValue::~StringValue();
CORBA::StringValueのインスタンスを削除するときに使用します。
インスタンスを削除時には、保持している文字列も解放されます。
ありません。
起こりません。
CORBA::StringValue::operator=(char*)
CORBA::StringValue::operator=(const char*)
CORBA::StringValue::operator=(const CORBA::String_var&)
- 文字列代入オペレータ
#include <orb.h> CORBA::StringValue& CORBA::StringValue::operator=(char* p); CORBA::StringValue& CORBA::StringValue::operator=(const char* p); CORBA::StringValue& CORBA::StringValue::operator=( const CORBA::String_var& s );
CORBA::StringValueのインスタンスの保持している文字列に右辺の文字列を代入またはコピーし自分自身への参照を返します。 もし、左辺が文字列を保持していたときは、古い文字列は破棄されます。
char*型からの代入はCORBA::string_alloc(CORBA::ULong)もしくはCORBA::string_dup(const char*)および オペレーションの戻り値でなければなりません。また、代入された文字列は解放する必要はありません。 代入された文字列は、CORBA::StringValueのインスタンスが解放されるとき、自動的に解放されます。
const char*型からの代入はconst char*が指している領域のコピーになります。 コピーされた文字列は、CORBA::StringValueのインスタンスが解放されるとき、自動的に解放されます。
const CORBA::String_var&型からの代入は右辺が保持している文字列のコピーされます。 コピーされた文字列は、CORBA::StringValueのインスタンスが解放されるとき、自動的に解放されます。
例)
const char* cs = "const char* string"; char* sptr = CORBA::string_dup(cs); CORBA::String_var svar = CORBA::string_dup(cs); CORBA::StringValue* sv1 = new CORBA::StringValue(); CORBA::StringValue* sv2 = new CORBA::StringValue(); CORBA::StringValue* sv3 = new CORBA::StringValue(); sv1 = sptr; // char* sv2 = cs; // const char* sv3 = sv2; // const CORBA::String_var&
自分自身への参照を返します。
operator=(const char*)およびoperator=(const CORBA::String_var&)は内部で文字列をコピーするため、 メモリ不足によるエラーが起こることがあります。この場合、文字列としてヌル・ポインタが設定されます。
CORBA::StringValue::operator[](CORBA::ULong)
- 保持している文字列のindex番目の要素の参照をchar&型で返す
#include <orb.h> char& CORBA::StringValue::operator[](CORBA::ULong index);
CORBA::StringValueのインスタンスが保持している文字列のindex番目の要素の参照をchar&型で返します。
index番目の要素の参照をchar&型で返します。
起こりません。
CORBA::StringValue::operator[](CORBA::ULong) const
- 保持している文字列のindex番目の要素をchar型で返す
#include <orb.h> char CORBA::StringValue::operator[](CORBA::ULong index) const;
CORBA::StringValueのインスタンスが保持している文字列のindex番目の要素をchar型で返します。
index番目の要素をchar型で返します。
起こりません。
CORBA::StringValue::_value(char*)
CORBA::StringValue::_value(const char*)
CORBA::StringValue::_value(const CORBA::String_var&)
- 保持する文字列を変更する
#include <orb.h> void CORBA::StringValue::_value(char* p); void CORBA::StringValue::_value(const char* p); void CORBA::StringValue::_value(const CORBA::String_var& s);
CORBA::StringValueのインスタンスの保持している文字列に引数の文字列を代入またはコピーします。 もし、文字列を保持していたときは、古い文字列は破棄されます。
引数がchar*型の場合は、引数の文字列はCORBA::string_alloc(CORBA::ULong)もしくはCORBA::string_dup(const char*)および オペレーションの戻り値でなければなりません。また、代入された文字列は解放する必要はありません。 代入された文字列は、CORBA::StringValueのインスタンスが解放されるとき、自動的に解放されます。
引数がconst char*型の場合は、引数の文字列がコピーされます。 コピーされた文字列は、CORBA::StringValueのインスタンスが解放されるとき、自動的に解放されます。
引数がconst CORBA::String_var&型の場合は、引数が保持している文字列がコピーされます。 コピーされた文字列は、CORBA::StringValueのインスタンスが解放されるとき、自動的に解放されます。
例)
const char* cs = "const char* string"; char* sptr = CORBA::string_dup(cs); CORBA::String_var svar = CORBA::string_dup(cs); CORBA::StringValue* sv1 = new CORBA::StringValue(); CORBA::StringValue* sv2 = new CORBA::StringValue(); CORBA::StringValue* sv3 = new CORBA::StringValue(); sv1->_value(sptr); // char* sv2->_value(cs); // const char* sv3->_value(sv2); // const CORBA::String_var&
ありません。
引数がconst char*型およびconst CORBA::String_var&の場合、内部で文字列をコピーするため、 メモリ不足によるエラーが起こることがあります。この場合、文字列としてヌル・ポインタが設定されます。
CORBA::StringValue::_value()
- 保持している文字列を取得する
#include <orb.h> const char* CORBA::StringValue::_value();
CORBA::StringValueのインスタンスの保持している文字列を返します。 戻り値の文字列を解放してはいけません。
例)
const char* cs = "const char* string"; CORBA::StringValue* sv = new CORBA::StringValue(cs); const char* cs2 = sv->_value();
保持している文字列を返します。
起りません。
CORBA::StringValue::_boxed_in()
CORBA::StringValue::_boxed_inout()
CORBA::StringValue::_boxed_out()
- 保持する文字列をオペレーション引数の属性に応じた型で返す
#include <orb.h> const char* CORBA::StringValue::_boxed_in(); char*& CORBA::StringValue::_boxed_inout(); char*& CORBA::StringValue::_boxed_out();
CORBA::StringValueのインスタンスの保持している文字列を IDL string型を引数にもつオペレーションに渡す場合に、これらの関数を使用します。
_boxed_in()、_boxed_inout()および_boxed_out()はそれぞれ、in引数、inout引数およびout引数に対応しています。
_boxed_in()では、保持している文字列は、オペレーションのin引数として渡されます。
_boxed_inout()では、保持している文字列は、オペレーションにin引数として渡され、オペレーションの out引数として返された文字列に置き換えられます。
_boxed_out()では、保持している文字列は、呼び出し前に解放され、 オペレーションのout引数として返された文字列に置き換えられます。
例)
// IDL void myope(in string a, inout string b, out string c); // C++ const char* cs = "const char* string"; CORBA::StringValue* sv1 = new CORBA::StringValue(cs); CORBA::StringValue* sv2 = new CORBA::StringValue(cs); CORBA::StringValue* sv3 = new CORBA::StringValue(cs); myppe(sv1->_boxed_in(), sv2->_boxed_inout(), sv3->_boxed_out());
保持する文字列をオペレーション引数の属性に応じた型で返します。
起りません。