ONC+ 開発ガイド

可変長の隠されたデータ

標準規約では、可変長 (カウント付き) の隠されたデータも定義されます。このようなデータは、n バイトの任意のバイトシーケンス (バイト番号は 0 から n-1) が、次に示すように符号なし整数 w に符号化され、その後に、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

指定した最大バイト数以上の長さを符号化しないでください。