あなたはワイヤーにを意味する場合 - その後、最初に:それを心配するシリアライザの仕事ですが、この場合では、それが単に(繰り返し要素ごと)として実装されています
0x0a = "field 1, length prefixed" (strings are always length prefixed)
{number of bytes as UTF8, varint-encoded}
{that many bytes of UTF8}
だから、3つのアイテムが繰り返されると、0x0a、varint、payloadの3つのロットが次々にスラミングされます。整数などのプリミティブ型の場合は、配列全体のバイト長を先読みすることで、要素ごとのヘッダーが不要になる「パック」エンコーディングがあります。最初に、次に配列の内容をraw以外トークン化されたデータ。
あなたは、呼び出し側の視点からを意味するならば、:それがダウンして実装することですが、基本的にあなたが期待すべきいくつかの馴染みのAPI - そのフレームワークに共通します。これは、repeated
のデータが配列/ベクトルとして公開されているか、Add
などのAPIを持つ「コレクション」クラスを意味する可能性があります。それは、目標の枠組みと実装する著者の気まぐれな点で賢明なものに完全に依存します。
「これはどのように構成されていますか」という意味ですか? - または、「私のアプリでこれをどうやって動作させるの?」という意味ですか? - 彼らは非常に異なる質問です。 –
私は、「これはどのようにワイヤで構成されていますか? –
エンコーディング仕様が利用可能です - 単に "protobuf encoding"を検索してください - しかし、それは率直に言って、これはライブラリ実装者にとって興味深いことです。あなたが既存のライブラリを消費しているだけの場合は、それを心配するのはライブラリの仕事です –