2017-01-12 4 views
2

protobuf C++プログラミングガイドのチュートリアルを読んでいます。SerializeWithCachedSizeToArrayを.h関数の中に入れているようですが、SerializeToString()SerializeToOstream()も呼び出すことができます。protobufとSerialized Array/String/Ostreamによって提供される他のターゲットタイプ

私が知りたい:

(1)PB cppのコードの他のデフォルトのシリアライズ/デシリアライズ機能を提供していますか?

(2)

void SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output 

の生成機能を使用するにはどうすればGoogleで検索するが、いつ、どこで、私はCodedOutputStreamを使用する必要があります取得できませんでした。

説明はありますか?ありがとう。

答えて

2

1)合計サイズを計算する、b)エンコードする、c)ダンプする、の3つの主な操作を行う必要があります。たとえば、SerializeWithCachedSizeToArrayは、a)キャッシュサイズを使用し、c)dumpをchar配列に格納することを意味します。

これらの操作をどのように行うかによって、シリアライズ機能には多くのバリエーションがあり、ライブラリ提供のユーティリティまたは作成したユーティリティを組み合わせて他のタイプを作成することができます。あなたが見ることができるように、最も一般的な関数は 'SerializeToString/Ostream'です。文字列、文字配列、ostream、zlibstreamなどがあります。

2)CodedOutputStreamは、タグ付きストリームをエンコードするユーティリティクラスです。 Tag - '='の後ろにprotoに入れた番号。ストリーム、char配列などのダンプターゲットでインスタンス化します。

関連する問題