2011-12-08 6 views
1

structにint、float、および2つの文字列があるとします。私たちは、(Windows x86上で)シリアライズし、インターネット経由で送信し、相対的なPODベースの構造体(Linux x64上)を非直列化したいと考えています。POD構造をプロトコルバッファに自動的に(.protoファイルを使用せずに)シリアル化するには?

my_obj var; 
string data =protobuf.serialize(var); 

my_obj new_war = protobuf.deserialize(data); 

はなく、あなたの構造に持っていたフィールド何気に:私は、異なる言語間で、データが直列化可能になり、時にはあなただけのような何かを言いたいのアプローチをprotobufs好き。だから可能性があるのか​​どうか、魔法のようにPODのデータをシリアライズする方法があるのでしょうか(boost serializationがサポートしているブーストのシリアライゼーションとすべてのタイプの友人)はProtocol Bufferに構造体を含んでいますか?

+0

聖なるものすべての愛のために、*浮き*を送ってはいけません! –

答えて

1

Protobufスキーマを定義して、POD構造体を名前と値のペアの集合として表すことができます。各値はプリミティブ型の和集合ですが、実際の問題はC++に任意の型をイントロスペクトする方法がないことです。あなたのコードのどこかに、あなたのタイプの記述を提供する必要があります。

ところで、Protobufは文字列ではなく、バイナリデータにシリアル化します。

関連する問題