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);