14 Oracle Key VaultクライアントSDKのTTLVオブジェクトAPI
SDK TTLV
オブジェクトAPIを使用すると、OKVTTLV
オブジェクトの子の取得などのアクティビティを実行できます。
- Oracle Key VaultクライアントSDKのTTLVオブジェクトAPIについて
Oracle Key Vaultには、Oracle Key Vault KMIPのパーサーとビルダーに対応するインタフェースが用意されています。これらは、OKVTTLVオブジェクトの作成と解析に利用できます。 - okvTTLVAddToObject
okvTTLVAddToObject
では、OKVTTLVオブジェクトを作成して、このオブジェクトをOKVTTLV親オブジェクトの子オブジェクトにします。 - okvTTLVAddToObjectByTag
okvTTLVAddToObjectByTag
では、OKVTTLVオブジェクトを作成して、このオブジェクトをOKVTTLV親オブジェクトの子オブジェクトにします。 - okvTTLVGetChild
okvTTLVGetChild
では、OKVTTLVオブジェクトから指定の要素索引にある子OKVTTLVオブジェクトを取得します。 - okvTTLVGetChildByTag
okvTTLVGetChildByTag
では、OKVTTLVオブジェクトから指定したタグが付いている子OKVTTLVオブジェクトを取得します。 - okvTTLVGetChildCount
okvTTLVGetChildCount
は、指定したOKVTTLV親オブジェクトの子OKVTTLVオブジェクトの数を返します。 - okvTTLVGetChildCountByTag
okvTTLVGetChildCountByTag
は、指定したOKVTTLV親オブジェクトのうち指定のタグが付いている子OKVTTLVオブジェクトの数を返します。 - okvTTLVGetFirstChildByTag
okvTTLVGetFirstChildByTag
では、OKVTTLVオブジェクトのうち指定したタグが付いている最初の子を取得します。 - okvTTLVGetLen
okvTTLVGetLen
は、OKVTTLVオブジェクトの値の長さを返します。 - okvTTLVGetRequest
okvTTLVGetRequest
は、操作のOKVTTLVリクエスト・オブジェクトを返します。 - okvTTLVGetResponse
okvTTLVGetResponse
は、カスタムKMIP操作のOKVTTLVレスポンス・オブジェクトを返します。 - okvTTLVGetTag
okvTTLVGetTag
は、OKVTTLVオブジェクトのタグ値を返します。 - okvTTLVGetType
okvTTLVGetType
は、OKVTTLVオブジェクトのタイプ値を返します。 - okvTTLVGetValue
okvTTLVGetValue
は、OKVTTLVオブジェクトの値へのポインタを返します。 - okvTTLVGetValueCopy
okvTTLVGetValueCopy
では、指定したバッファにOKVTTLVオブジェクトの値をコピーします。
14.1 Oracle Key VaultクライアントSDKのTTLVオブジェクトAPIについて
Oracle Key Vaultには、Oracle Key Vault KMIPのパーサーとビルダーに対応するインタフェースが用意されています。これらは、OKVTTLVオブジェクトの作成と解析に利用できます。
TTLVは、tag type length value (タグ-タイプ-長さ-値)の略語です。Oracle Key Vault SDKのTTLVオブジェクトAPIで使用される要素索引と属性索引は、Oracle Key Vault KMIP属性APIと同じ意味を持ちます。
14.2 okvTTLVAddToObject
okvTTLVAddToObject
では、OKVTTLVオブジェクトを作成して、このオブジェクトをOKVTTLV親オブジェクトの子オブジェクトにします。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVAddToObject
では、OKVTTLVオブジェクトを作成して、新しく作成したOKVTTLVオブジェクトをOKVTTLV親オブジェクトの子オブジェクトにします。
構文
OKVTTLV *okvTTLVAddToObject(OKVEnv *env, OKVTTLV *ttlv, OKVTag tag, OKVType typ, void *val, ub4 len);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
ttlv |
IN |
OKVTTLV親オブジェクト。 |
tag |
IN |
OKVTTLVオブジェクトのタグ。 |
typ |
IN |
OKVTTLVオブジェクトのタイプ。 |
val |
IN |
OKVTTLVオブジェクトの値。 |
len |
IN |
OKVTTLVオブジェクトの値の長さ。 |
戻り値
戻り値 | 説明 |
---|---|
OKVTTLV* |
OKVTTLVオブジェクト。 成功: 作成したOKVTTLVオブジェクトへの有効なポインタが返されます。 失敗: |
コメント
なし。
例
OKVTTLV *req = (OKVTTLV *) NULL; OKVTTLV *template; ... OKVOps *ops = okvOpsCreate(env, OKVOpCreate); req = okvTTLVGetRequest(env, ops); ... template = okvTTLVAddToObject(env, req, OKVDEF_TAG_TEMPLATE_ATTR_ST, OKVDEF_ITEM_TYPE_STRUCT, (void *) NULL, (ub4) 0);
14.3 okvTTLVAddToObjectByTag
okvTTLVAddToObjectByTag
では、OKVTTLVオブジェクトを作成して、このオブジェクトをOKVTTLV親オブジェクトの子オブジェクトにします。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVAddToObjectByTag
では、OKVTTLVオブジェクトを作成して、新しく作成したOKVTTLVオブジェクトをOKVTTLV親オブジェクトの子オブジェクトにします。
構文
OKVTTLV *okvTTLVAddToObjectByTag(OKVEnv *env, OKVTTLV *ttlv, OKVTag tag, void *val, ub4 len);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル |
ttlv |
IN |
OKVTTLV親オブジェクト |
tag |
IN |
OKVTTLVオブジェクトのタグ |
val |
IN |
OKVTTLVオブジェクトの値 |
len |
IN |
OKVTTLVオブジェクトの値の長さ |
戻り値
戻り値 | 説明 |
---|---|
OKVTTLV* |
OKVTTLVオブジェクト 成功: 作成したOKVTTLVオブジェクトへの有効なポインタが返されます。 失敗: |
コメント
okvTTLVAddToObjectByTag
とokvTTLVAddToObject
の相違点は、okvTTLVAddToObjectByTag
がタグのタイプを解釈しようとすることです。これは、ほとんどの場合に実行できますが、実行できないこともあります。
例
OKVTTLV *req = (OKVTTLV *) NULL; OKVTTLV *template; ... OKVOps *ops = okvOpsCreate(env, OKVOpCreate); req = okvTTLVGetRequest(env, ops); ... template = okvTTLVAddToObjectByTag(env, req, OKVDEF_TAG_TEMPLATE_ATTR_ST, (void *) NULL, (ub4) 0);
14.4 okvTTLVGetChild
okvTTLVGetChild
では、OKVTTLVオブジェクトから指定の要素索引にある子OKVTTLVオブジェクトを取得します。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVGetChild
では、OKVTTLVオブジェクトから指定の要素索引にある子OKVTTLVオブジェクトを取得します。OKVTTLVオブジェクトのタグとタイプ、OKVTTLVオブジェクトの値の長さも返されます。
構文
OKVTTLV *okvTTLVGetChild(OKVEnv *env, OKVTTLV *ttlv, ub4 elem_index, OKVTag *tag, OKVType *typ, ub4 *len);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル |
ttlv |
IN |
OKVTTLV親オブジェクト |
elem_index |
IN |
子OKVTTLVオブジェクトの要素索引 |
tag |
OUT |
取得する子OKVTTLVオブジェクトのタグ |
typ |
OUT |
取得する子OKVTTLVオブジェクトのタイプ |
len |
OUT |
OKVTTLVオブジェクトの値の長さ |
戻り値
戻り値 | 説明 |
---|---|
OKVTTLV* |
要素索引 成功: 要素索引 失敗: NULLポインタが |
コメント
-
elem_index
が子の数を超えている場合は、NULL
が返されます。 -
OKVTTLVオブジェクトの値のタグも返されます(
tag
がNULL
でない場合)。 -
OKVTTLVオブジェクトの値のタイプも返されます(
typ
がNULL
でない場合)。 -
OKVTTLVオブジェクトの値の長さも返されます(
len
がNULL
でない場合)。
例
OKVTTLV *resp = (OKVTTLV *) NULL; OKVTTLV *tagid = (OKVTTLV *) NULL; OKVTag ctag; OKVType ctyp; ub4 clen; ... OKVOps *ops = okvOpsCreate(env, OKVOpCreate); resp = okvTTLVGetResponse(env, ops); tagid = okvTTLVGetChild(env, resp, 1, &ctag, &ctyp, &clen);
14.5 okvTTLVGetChildByTag
okvTTLVGetChildByTag
では、OKVTTLVオブジェクトから指定したタグを持つ子OKVTTLVオブジェクトを取得します。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVGetChildByTag
は、OKVTTLVオブジェクトから、要素索引elem_index
以降で指定したタグが付いている子OKVTTLVオブジェクトを取得するために使用します。実際の要素索引も戻されます。
構文
OKVTTLV *okvTTLVGetChildByTag(OKVEnv *env, OKVTTLV *ttlv, OKVTag tag, ub4 *elem_index);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
ttlv |
IN |
OKVTTLV親オブジェクト。 |
tag |
IN |
取得するOKVTTLVオブジェクトのタグ。 |
elem_index |
IN/OUT |
子OKVTTLVオブジェクトの要素索引。 |
戻り値
戻り値 | 説明 |
---|---|
OKVTTLV* |
指定のタグが付いているOKVTTLVオブジェクト。 成功: 要素索引 失敗: |
コメント
elem_index
が子の数を超えている場合は、NULL
が返されます。
例
OKVTTLV *resp = (OKVTTLV *) NULL; OKVTTLV *tagid = (OKVTTLV *) NULL; OKVTag ctag; OKVType ctyp; ub4 clen; ub4 elem_index = 0; ... OKVOps *ops = okvOpsCreate(env, OKVOpCreate); resp = okvTTLVGetResponse(env, ops); tagid = okvTTLVGetChildByTag(env, resp, OKVDEF_TAG_ID, &elem_index); ctag = okvTTLVGetTag(tagid); ctyp = okvTTLVGetType(tagid); clen = okvTTLVGetLen(tagid);
14.6 okvTTLVGetChildCount
okvTTLVGetChildCount
は、指定したOKVTTLV親オブジェクトの子OKVTTLVオブジェクトの数を返します。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVVGetChildCount
は、指定したOKVTTLV親オブジェクトの子OKVTTLVオブジェクトの数を返します。
構文
ub4 okvTTLVGetChildCount(OKVTTLV *ttlv);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
ttlv |
IN |
OKVTTLVオブジェクト |
戻り値
戻り値 | 説明 |
---|---|
ub4 |
指定したOKVTTLVオブジェクトの子OKVTTLVオブジェクトの数。 成功: 指定したOKVTTLV親オブジェクトの子OKVTTLVオブジェクトの数。 失敗: エラーが発生した場合やOKVTTLV親オブジェクトが |
コメント
指定したOKVTTLVオブジェクトがSTRUCTURE
でない場合は、ゼロが返されます。指定したOKVTTLVオブジェクトがSTRUCTURE
であってもエラーが発生した場合は、ゼロが返されます。
例
OKVTTLV *resp = (OKVTTLV *) NULL; ub4 child_count; ... OKVOps *ops = okvOpsCreate(env, OKVOpCreate); resp = okvTTLVGetResponse(env, ops); child_count = okvTTLVGetChildCount(resp);
14.7 okvTTLVGetChildCountByTag
okvTTLVGetChildCountByTag
は、指定したOKVTTLV親オブジェクトのうち指定のタグが付いている子OKVTTLVオブジェクトの数を返します。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVGetChildCountByTag
は、指定したOKVTTLV親オブジェクトのうち指定のタグが付いている子OKVTTLVオブジェクトの数を返します。
構文
ub4 okvTTLVGetChildCountByTag(OKVTTLV *ttlv, OKVTag tag);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
ttlv |
IN |
OKVTTLVオブジェクト |
tag |
IN |
カウントする子OKVTTLVオブジェクトのタグ |
戻り値
戻り値 | 説明 |
---|---|
ub4 |
指定したOKVTTLV親オブジェクトのうち指定のタグが付いている子OKVTTLVオブジェクトの数。 成功: 指定したOKVTTLV親オブジェクトのうち指定のタグが付いている子OKVTTLVオブジェクトの数。 失敗: エラーが発生した場合やOKVTTLV親オブジェクトが |
コメント
指定したOKVTTLVオブジェクトがSTRUCTURE
でない場合は、ゼロが返されます。指定したOKVTTLVオブジェクトがSTRUCTURE
であってもエラーが発生した場合は、ゼロが返されます。
例
OKVTTLV *resp = (OKVTTLV *) NULL; ub4 unique_id_count; ... OKVOps *ops = okvOpsCreate(env, OKVOpCreate); resp = okvTTLVGetResponse(env, ops); unique_id_count = okvTTLVGetChildCountByTag(resp, OKVDEF_TAG_ID);
14.8 okvTTLVGetFirstChildByTag
okvTTLVGetFirstChildByTag
では、OKVTTLVオブジェクトのうち指定したタグが付いている最初の子を取得します。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVGetFirstChildByTag
は、OKVTTLVオブジェクトのうち指定したタグが付いている最初の子を取得するために使用します。
構文
OKVTTLV *okvTTLVGetFirstChildByTag(OKVEnv *env, OKVTTLV *ttlv, OKVTag tag);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル |
ttlv |
IN |
OKVTTLV親オブジェクト |
tag |
IN |
取得するOKVTTLVオブジェクトのタグ |
戻り値
戻り値 | 説明 |
---|---|
OKVTTLV* |
指定のタグが付いているOKVTTLVオブジェクト。 成功: 指定したタグが付いている子OKVTTLVオブジェクトへの有効なポインタが返されます。 失敗: |
コメント
なし。
例
OKVTTLV *resp = (OKVTTLV *) NULL; OKVTTLV *tagid = (OKVTTLV *) NULL; OKVTag ctag; OKVType ctyp; ub4 clen; ... OKVOps *ops = okvOpsCreate(env, OKVOpCreate); resp = okvTTLVGetResponse(env, ops); tagid = okvTTLVGetFirstChildByTag(env, resp, OKVDEF_TAG_ID); ctag = okvTTLVGetTag(tagid); ctyp = okvTTLVGetType(tagid); clen = okvTTLVGetLen(tagid);
14.9 okvTTLVGetLen
okvTTLVGetLen
は、OKVTTLVオブジェクトの値の長さを返します。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVGetLen
は、OKVTTLVオブジェクトの値の長さを返します。
構文
ub4 okvTTLVGetLen(OKVTTLV *ttlv);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
ttlv |
IN |
OKVTTLVオブジェクト |
戻り値
戻り値 | 説明 |
---|---|
ub4 |
OKVTTLVオブジェクト値の長さ 成功: OKVTTLVオブジェクトの値の長さが返されます。 失敗: OKVTTLVオブジェクトが |
コメント
OKVTTLVタイプがSTRUCTURE
の場合を除いて、ゼロの長さが返された場合はエラーを意味します。
例
OKVTTLV *resp = (OKVTTLV *) NULL; OKVTTLV *tagid = (OKVTTLV *) NULL; ub4 clen; ... OKVOps *ops = okvOpsCreate(env, OKVOpCreate); resp = okvTTLVGetResponse(env, ops); tagid = okvTTLVGetFirstChildByTag(env, resp, OKVDEF_TAG_ID); clen = okvTTLVGetLen(tagid);
14.10 okvTTLVGetRequest
okvTTLVGetRequest
は、操作のOKVTTLVリクエスト・オブジェクトを返します。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVGetRequest
は、操作のOKVTTLVリクエスト・オブジェクトを返します。このオブジェクトは、KMIPリクエストの作成に使用するルートOKVTTLVオブジェクトになります。KMIPリクエストに使用するすべてのOKVTTLVオブジェクトは、OKVTTLVリクエスト・オブジェクトに収容されます。
構文
OKVTTLV *okvTTLVGetRequest(OKVEnv *env, OKVOps *ops);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル |
ops |
IN |
Oracle Key Vault操作ハンドル |
戻り値
戻り値 | 説明 |
---|---|
OKVTTLV* |
操作のOKVTTLVリクエスト・オブジェクト。 成功: OKVTTLVリクエスト・オブジェクトへの有効なポインタが返されます。 失敗: |
コメント
なし。
例
OKVTTLV *req = (OKVTTLV *) NULL; OKVTTLV *attr_in = (OKVTTLV *)NULL; ... OKVOps *op = okvOpsCreate(env, OKVOpAddAttribute); req = okvTTLVGetRequest(env, op); attr_in = okvAddAttributeObject(env, req, OKVAttrName, 0); okvAttrAddName(env, attr_in, "XYZ", strlen("XYZ"), 1); okvAddAttribute(env, uid, &attr_in);
14.11 okvTTLVGetResponse
okvTTLVGetResponse
は、カスタムKMIP操作のOKVTTLVレスポンス・オブジェクトを返します。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVGetResponse
は、カスタムKMIP操作のOKVTTLVレスポンス・オブジェクトを返します。このオブジェクトは、Oracle Key VaultサーバーからのKMIPレスポンスを解析するために使用します。KMIPレスポンスのすべてのOKVTTLVオブジェクトは、OKVTTLVレスポンス・オブジェクトから抽出して処理する必要があります。
構文
OKVTTLV *okvTTLVGetResponse(OKVEnv *env, OKVOps *ops);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
ops |
IN |
Oracle Key Vault操作ハンドル。 |
戻り値
戻り値 | 説明 |
---|---|
OKVTTLV* |
操作のOKVTTLVレスポンス・オブジェクト。 成功: OKVTTLVレスポンス・オブジェクトへの有効なポインタが返されます。 失敗: |
コメント
なし。
例
OKVTTLV *resp = (OKVTTLV *) NULL; OKVTTLV *tagid = (OKVTTLV *) NULL; OKVTag ctag, rtag; OKVType ctyp, rtyp; oratext cval[OKV_UNIQUE_ID_MAXLEN + 1], rval[OKV_UNIQUE_ID_MAXLEN + 1]; ub4 clen, rlen; OKVOps *ops[2]; ... /* Get the result of the First Batch Operation */ ops[0] = okvOpsCreate(env, OKVOpCreate); resp = okvTTLVGetResponse(env, ops[0]); /* Retrieve the Unique Identifier */ tagid = okvTTLVGetChild(env, resp, 1, &ctag, &ctyp, &clen); printf("\n%d %d %d ", ctag, ctyp, clen); okvTTLVGetValueCopy(tagid, (void *)cval, clen); cval[clen] = 0; printf("%s\n", cval); /* Print the Unique Identifier */ /* Get the result of the Second Batch Operation */ ops[1] = okvOpsCreate(env, OKVOpActivate); resp = okvTTLVGetResponse(env, ops[1]); /* Retrieve the Unique Identifier */ tagid = okvTTLVGetChild(env, resp, 0, &rtag, &rtyp, &rlen); printf("\n%d %d %d ", rtag, rtyp, rlen); okvTTLVGetValueCopy(tagid, (void *)rval, rlen); rval[rlen] = 0; printf("%s\n", rval); /* Print the Unique Identifier */
14.12 okvTTLVGetTag
okvTTLVGetTag
は、OKVTTLVオブジェクトのタグ値を返します。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVGetTag
は、OKVTTLVオブジェクトのタグ値を返します。
構文
OKVTag okvTTLVGetTag(OKVTTLV *ttlv);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
ttlv |
IN |
OKVTTLVオブジェクト |
戻り値
戻り値 | 説明 |
---|---|
OKVTag |
OKVTTLVオブジェクトのタグ。 成功: OKVTTLVオブジェクトの有効なタグ値が返されます。 失敗: ゼロが返されます。 |
コメント
なし。
例
OKVTTLV *resp = (OKVTTLV *) NULL; OKVTTLV *tagid = (OKVTTLV *) NULL; OKVTag ctag; ... OKVOps *ops = okvOpsCreate(env, OKVOpCreate); resp = okvTTLVGetResponse(env, ops); tagid = okvTTLVGetFirstChildByTag(env, resp, OKVDEF_TAG_ID); ctag = okvTTLVGetTag(tagid);
14.13 okvTTLVGetType
okvTTLVGetType
は、OKVTTLVオブジェクトのタイプ値を返します。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVGetType
は、OKVTTLVオブジェクトのタイプ値を返します。
構文
OKVType okvTTLVGetType(OKVTTLV *ttlv);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
ttlv |
IN |
OKVTTLVオブジェクト |
戻り値
戻り値 | 説明 |
---|---|
OKVType |
OKVTTLVオブジェクトのタイプ。 成功: OKVTTLVオブジェクトの有効なタイプ値が返されます。 失敗: エラーが発生した場合は、ゼロが返されます。 |
コメント
なし。
例
OKVTTLV *resp = (OKVTTLV *) NULL; OKVTTLV *tagid = (OKVTTLV *) NULL; OKVType ctyp; ... OKVOps *ops = okvOpsCreate(env, OKVOpCreate); resp = okvTTLVGetResponse(env, ops); tagid = okvTTLVGetFirstChildByTag(env, resp, OKVDEF_TAG_ID); ctyp = okvTTLVGetType(tagid);
14.14 okvTTLVGetValue
okvTTLVGetValue
は、OKVTTLVオブジェクトの値へのポインタを返します。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVGetValue
は、OKVTTLVオブジェクトの値へのポインタを返します。
構文
void *okvTTLVGetValue(OKVTTLV *ttlv);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
ttlv |
IN |
OKVTTLVオブジェクト |
戻り値
戻り値 | 説明 |
---|---|
void* |
OKVTTLVオブジェクト値。 成功: OKVTTLVオブジェクトの値へのポインタが返されます。 失敗: エラーが発生した場合は、NULLポインタが返されます。 |
コメント
なし。
例
OKVTTLV *resp = (OKVTTLV *) NULL; OKVTTLV *tagid = (OKVTTLV *) NULL; ub4 clen; oratext *cval; ... OKVOps *ops = okvOpsCreate(env, OKVOpCreate); resp = okvTTLVGetResponse(env, ops); tagid = okvTTLVGetFirstChildByTag(env, resp, OKVDEF_TAG_ID); clen = okvTTLVGetLen(tagid); cval = (oratext *) okvTTLVGetValue(tagid); cval[clen] = 0; printf("%s", cval);
14.15 okvTTLVGetValueCopy
okvTTLVGetValueCopy
では、指定したバッファにOKVTTLVオブジェクトの値をコピーします。
カテゴリ
KMIP拡張TTLVオブジェクトAPI
用途
okvTTLVGetValueCopy
では、指定したバッファにOKVTTLVオブジェクトの値をコピーします。
構文
ub4 okvTTLVGetValueCopy(OKVTTLV *ttlv, void *val, ub4 len);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
ttlv |
IN |
OKVTTLVオブジェクト |
val |
OUT |
OKVTTLVオブジェクト値用のバッファ |
len |
IN |
OKVTTLVオブジェクト値の長さ |
戻り値
戻り値 | 説明 |
---|---|
ub4 |
OKVTTLVオブジェクト値の長さ。 成功: OKVTTLVオブジェクトの値の長さが返されます。 失敗: ゼロが返されます。 |
コメント
この関数をコールする前に、値用のメモリーを事前に割り当てておく必要があります。
OKVTTLVオブジェクトのタイプに応じて、値の解釈が異なります。たとえば、OKVTTLVオブジェクトのタイプがINTEGER
の場合は、ub4変数に値を格納できます。ただし、OKVTTLVオブジェクトがBYTE STRING
の場合、値は長さlen
のub1配列です。
この関数は、STRUCTURE
型のOKVTTLVオブジェクトには使用しないでください。
例
OKVTTLV *resp = (OKVTTLV *) NULL; OKVTTLV *tagid = (OKVTTLV *) NULL; ub4 clen; oratext cval[OKV_UNIQUE_ID_MAXLEN + 1]; ... OKVOps *ops = okvOpsCreate(env, OKVOpCreate); resp = okvTTLVGetResponse(env, ops); tagid = okvTTLVGetFirstChildByTag(env, resp, OKVDEF_TAG_ID); clen = okvTTLVGetLen(tagid); okvTTLVGetValueCopy(tagid, (void *)cval, clen); cval[clen] = 0; printf("%s", cval);