2011-06-13 10 views
1

私はProtobufsのクラス階層を持っていて、それらは直列化され、逆シリアル化されています。実行時には、これらのクラスの1つに、C++で実装されているクラスのインスタンスが含まれていて、ランタイムに見つかった何らかの装飾とキャッシュが含まれています。
通常のprotobufコンパイラでこれを実装する方法はありますか?Protobufに外部依存関係を注入していますか?

2つのオプションは、クラスのすべてのインスタンスに整数のインデックスを持つインデックスを使用しています。私はパフォーマンスヒットのためにこれを避けたいと思います。
もう一つのオプションは、生成されたソースファイルを外部スクリプトでmangleすることです。これはむしろ醜いので、可能ならば避けたい。

+1

もう少し説明しようとしていますか?あなたはあなたのアプリを通してプロトタイプ生成クラスを使用していますか?通常は、それらを適切なドメインオブジェクトに変換します(または少なくともそれらをラップします)。データ転送オブジェクトの使用をローカライズする必要があります。 –

答えて

0

ランタイムに.protoを生成してデコレーションされたメッセージを記述し、protocを呼び出してディスクリプタを取得してからDynamicMessageを使用しますか?

少しばかりですが、うまくいくかもしれません。プロトタイプのドキュメントのSelf-Describing Messagesを参照してください。

+0

デコレーションをprotobufメッセージとして表現することはできません。これはシンプルなC++クラスです。 – shoosh

関連する問題