arm_init_transaction_type() - ARM トランザクション・タイプの定義と初期化

標準

標準/拡張機能 C/C++ 依存項目
  両方  

形式

#include <sys/_Elmarm4.h>

arm_error_t arm_init_transaction_type(
/* [in]     */  arm_appl_id_t   *application_id,
/* [in]     */  arm_string_t     transaction_name,
/* [in]     */  arm_int32_t      flags,
/* [in]     */  arm_buffer4_t   *buffer4,
/* [in/out] */  arm_appl_id_t   *transaction_type_id
);

機能説明

arm_init_transaction_type() は、トランザクションのクラス・タイプを定義する ために使用します。 トランザクション・タイプは、アプリケーションによって実行されるトランザクシ ョンのタイプを表します。 トランザクション・タイプは、そのタイプのトランザクション が arm_start_transaction() および arm_stop_transaction() を使って測定される前 に定義されている必要があります。

トランザクション・タイプは、1 つのトランザクション・タイプ名と 最大 20 個のトランザクション・プロパティー名のリストで構成されます。 複数のトランザクション・タイプが同じトランザクション・タイプ名と異なる トランザクション・プロパティー名を持つことができます。 トランザクション・タイプの固有性を決定するのは、名前の完全セットです。

トランザクション・タイプは、アプリケーションの初期化のときに定義するように お勧めします。 普通は処理のカテゴリーがほとんどないように、eWLM は、トランザクション・ タイプは幅広いカテゴリーの処理を表すものと期待します。 詳細なトランザクション識別は、トランザクション・レベルのプロパティーを使っ て行ってください。

トランザクション・タイプは、必要に応じて、アプリケーションのトラン ザクション処理中に定義することもできます。 ARM インプリメンテーションは、重複を避けるために、同じタイプの既 存の定義があるかどうかを検査する必要があります。 これはメインライン処理にさらなるオーバーヘッドを追加するので、この方法はお 勧めできません。

トランザクション・クラス・タイプの定義は、そのアプリケーションの存続中 (す なわち、アプリケーションが arm_end_application() を呼び出すまで、またはその処理 が終了するまで) 有効のままです。

arm_init_application_type() は、ARM 2.0 の arm_getid 関数と等価の ARM 4.0 版です。
application_id
arm_init_application() に渡されたり、そこから戻されたりする、このトラ ンザクション・タイプに関連付けられたアプリケーションのためのハンドル。
transaction_name
トランザクション・タイプを識別するための名前。 最大長は、ヌル・ストリング終了文字を含めて 128 字です。 eWLM ポリシー内の種別規則は、トランザクション・タイプ名を使ってトランザクシ ョンを eWLM サービス・クラスとレポート・クラスに分類することができます。
flags
1 つのフラグが定義されます。 ARM_INIT_FLAG_ID_INPUT は、トランザクション・タイプ ID が入力であるのか (フラグ は 1)、または出力であるのか (フラグはゼロ) を示します。 下記のトランザクション・タイプ ID パラメーターを参照してください。 他のフラグ・ビットはすべて予約されており、ゼロでなければなりません。
buffer4
追加データが入っている 1 つ以上のサブバッファーを識別するバッファーへのポインター。 追加データが必要ない場合は、ヌル値を指定できます。
transaction_type_id
トランザクション・タイプを識別する 64 ビット・ハンドルへのポインター。 アプリケーションがそれ自身のハンドルを定義して、それを入力として渡すことも できるし、eWLM がハンドルを生成して、それを戻すようにもできます。 その選択は、フラグ ARM_INIT_FLAG_ID_INPUT で示されます。 このハンドルは arm_start_transaction() に渡す必要があります。 ハンドルは、呼び出し元のプロセス内で定義されるだけです。 eWLM がハンドルを生成するように依頼された場合で、トランザクション・タイプ名と トランザクション・プロパティー名 (ユーザー・データ・バッファーの中) が前 の arm_init_transaction_type() 呼び出しで渡された名前と一致する場合、戻されるハ ンドル値は前の呼び出しのときと同じです。

戻り値

正常に実行されると、arm_init_application は ARM_RC_SUCCESS を戻します。 失敗した場合、エラーを示す errno と戻りコードが設定されます。考えられるすべての戻りコードのリストについては、戻りコードを参照してください。失敗すると、application_id は、後で他のインターフェースの呼び出しに使用でき るダミー値に設定されます。 このようなインターフェースは、application_id にはダミー値が入っていることを認識し、何も処理を実行せずに戻ります。
エラー・コード
説明
EFAULT
このサービスのパラメーターに、呼び出し元がアクセスできないアドレスが 入っていました。
EINVAL
このサービスのパラメーターに、無効な値が入っていました。
EMVSARMERROR
ARM エラーが発生しました。 具体的なエラーの戻りコードを参照してください。
EPERM
呼び出し元に適切な特権がありません。戻りコードは ARM_RC_AUTH_ERROR に設定されます。
EMVSSAF2ERR
セキュリティー・プロダクトでエラーが発生しました。

関連情報