ONC+ 開発ガイド

可変長の隠されたデータ

説明

標準規約では、可変長 (カウント付き) の隠されたデータも次のように定義されています。n バイトの任意のバイトシーケンス(バイト番号は 0n-1) がカウントされて下に示すように符号なし整数 n に符号化され、その後に n バイトのバイトシーケンスが続きます。

シーケンス内のバイト b は必ずバイト b+1 の直前に位置し、シーケンス内のバイト 0 はバイトシーケンスの長さ (カウント) の次に位置しています。n バイトのデータの後には、0〜 3 個の余分なゼロバイト r が付加されて、全体のバイト数が 4 の倍数になるように調整されます。

宣言

可変長の隠されたデータは次のように宣言します。

opaque identifier<m>; 

または

opaque identifier<>;; 

定数 m は、シーケンスに含まれるバイト数の上限を示します。2 番目の宣言のように m を指定しないと、最大バイト数は (2**32) - 1 となります。たとえば、ファイル伝送プロトコルで最大データ伝送サイズを 8192 バイトとするには、次のように宣言します。

opaque filedata<8192>;

符号化

可変長の隠されたデータ

Graphic

指定した最大バイト数以上の長さを符号化するとエラーになります。