TSCContext(C++)
TSCContextはシステム提供クラスです。
TSCContextは,TSCユーザプロキシを使用してクライアント側からサーバ側のTSCユーザオブジェクトのメソッドを呼び出すとき,暗黙的にサーバ側に渡すユーザデータのコンテナクラスです。次にTSCContextの特徴を示します。
TSCContextによるユーザデータの取得
TSCProxyObjectを使用してクライアント側からサーバ側のTSCユーザオブジェクトのメソッドを呼び出すときに,TSCContextによって引数以外のユーザデータをサーバ側に渡すことができます。
クライアント側では,TSCProxyObjectの_TSCContextによってTSCContextを取得し,送信したいユーザデータを設定します。サーバ側では,オブジェクトが呼び出されている間,TSCObjectの_TSCContextを使用してTSCContextを取得します。このTSCContextが保持しているユーザデータは,クライアント側のTSCContextに設定したユーザデータと同じ内容です。
形式
class TSCContext
{
public:
void setUserData(TSCUChar* user_data,
TSCInt user_data_length,
TSCBool release);
TSCUChar* getUserData();
TSCInt getUserDataLength();
TSCBool getUserDataRelease();
};
インクルードファイル
#include <tsccontext.h>
メソッド
●void setUserData(TSCUChar* user_data,
TSCInt user_data_length,
TSCBool release)
項目 | 型・意味 | |
---|---|---|
引数 | TSCUChar* user_data | ユーザデータ |
TSCInt user_data_length | ユーザデータサイズ | |
TSCBool release | リリースフラグ | |
戻り値 | ありません。 |
ユーザデータを設定します。
リリースフラグ(release)がTSC_FALSEの場合,user_dataのメモリ領域の管理責任はユーザにあります。TSC_TRUEの場合は,user_dataのメモリ管理責任はTSCContextクラスにあるので,ユーザは削除しないでください。また,TSC_TRUEの場合は,TSCContextクラスはuser_dataをdeleteオペレータで削除します。そのため,user_dataをnewオペレータで生成してください。
なお,このメソッドを複数のスレッド上から同時に呼び出すことはできません。
●TSCUChar* getUserData()
項目 | 型・意味 |
---|---|
戻り値 | ユーザデータ |
ユーザデータを取得します。
なお,このメソッドを複数のスレッド上から同時に呼び出すことはできません。
●TSCInt getUserDataLength()
項目 | 型・意味 |
---|---|
戻り値 | ユーザデータのサイズ |
ユーザデータのサイズを取得します。
なお,このメソッドを複数のスレッド上から同時に呼び出すことはできません。
●TSCBool getUserDataRelease()
項目 | 型・意味 |
---|---|
戻り値 | リリースフラグ |
ユーザデータのリリースフラグを取得します。
TSCContextの生成と削除
TSCContextのインスタンスは,newオペレータで生成しないでください。また,deleteオペレータで削除しないでください。
マルチスレッド環境でのメソッド呼び出し規則
マルチスレッド環境で,TSCContextクラスのインスタンスのメソッドを呼び出す規則を次に示します。
メソッド | 複数のスレッド上からの同時呼び出し |
---|---|
setUserData | できません。 |
getUserData | できません。 |
getUserDataLength | できません。 |