TSCClient(C++)
TSCClientはシステム提供クラスです。
TSCClientは,TSCデーモン中のクライアントアプリケーション管理部分を表すクラスです。クライアントアプリケーション側からのTSCユーザオブジェクトの呼び出し要求は,TSCClientを経由してTSCデーモンに渡されます。
ユーザは,クライアントアプリケーションがTSCデーモンと接続するときにTSCClientを取得します。クライアントアプリケーションとTSCデーモンの接続には,TSCデーモンと直結する方法と,TSCレギュレータを経由する方法があります。次にTSCClientの特徴を示します。
TSCデーモンに直結する場合のTSCClientの取得
クライアントアプリケーションとTSCデーモン間の直結の接続は,クライアントアプリケーションプロセス内でTSCClientを最初に取得するときに確立されます。その後,同じTSCデーモンに対してTSCClientを取得する場合は,その接続を共有します。逆に,取得したすべてのTSCClientを解放すると接続が切断されます。
一つのクライアントアプリケーションから複数のTSCデーモンへ接続を確立することもできます。また,TSCユーザオブジェクト呼び出し要求が,この接続を経由してTSCデーモンに渡される場合,並行して処理されます。
ただし,シングルスレッドライブラリを使用するアプリケーションプログラムの場合,TSCデーモンに直結してリクエストできません。
TSCレギュレータを経由する場合のTSCClientの取得
TSCレギュレータを経由する場合のクライアントアプリケーションとTSCデーモン間の接続は,TSCClientを取得するたびに確立されます。逆に,TSCClientを解放するたびに,割り当てられた接続が切断されます。
一つのクライアントアプリケーションから複数のTSCデーモンへ接続を確立することもできます。また,TSCユーザオブジェクト呼び出し要求がこの一つの接続を経由してTSCデーモンに渡される場合,並行して処理されないで順番に処理されます。
形式
class TSCClient;
typedef TSCClient* TSCClient_ptr;
class TSCClient
{
public:
const char* getTSCDomainName();
const char* getTSCID();
};
インクルードファイル
#include <tscproxy.h>
メソッド
●const char* getTSCDomainName()
項目 | 型・意味 |
---|---|
戻り値 | TSCドメイン名称 |
例外 | ありません。 |
TSCドメイン名称を返します。
TSCドメイン名称のメモリ領域の管理責任はTSCClientクラスにあるので,ユーザは削除しないでください。
なお,このメソッドを複数のスレッド上から同時に呼び出せます。
●const char* getTSCID()
項目 | 型・意味 |
---|---|
戻り値 | TSC識別子 |
例外 | ありません。 |
TSC識別子を返します。
TSCドメイン名称のメモリ領域の管理責任はTSCClientクラスにあるので,ユーザは削除しないでください。
なお,このメソッドを複数のスレッド上から同時に呼び出せます。
TSCClientの取得と解放
TSCデーモンと直結する場合,TSCClientを取得するには,TSCAdm::TSC_ADM_DIRECTを引数に指定してTSCAdm::getTSCClientを発行します。TSCレギュレータを経由する場合は,TSCAdm::TSC_ADM_REGULATORを引数に指定してTSCAdm::getTSCClientを発行します。
TSCClientを解放するときは,TSCAdm::releaseTSCClientを発行します。TSCClientクラスのインスタンスへの内部参照(アクセス)があるときは解放できないため,インスタンスへの内部参照(アクセス)をなくした状態で解放してください。
マルチスレッド環境でのメソッド呼び出し規則
マルチスレッド環境で,TSCClientクラスのインスタンスのメソッドを呼び出す規則を次に示します。
メソッド | 複数のスレッド上からの同時呼び出し |
---|---|
getTSCDomainName | できます。 |
getTSCID | できます。 |
インスタンスへの内部参照(アクセス)規則
TSCClientクラスのインスタンスを解放したあと,このインスタンスを内部参照するインスタンスからのアクセスは,メモリアクセス違反となります。OTMは,その際の動作を保証しません。
また,複数のスレッド上から同時にこのクラスの同じインスタンスを内部参照できます。