2016-12-01 18 views
0

私はこのプロジェクトを試しましたapache mesos ZooKeeperの部分です。internal::state:Entryの はどこに定義されているのか分かりません。それがクラスの場合は、誰かがこの部分についての詳細を与えることができますinternal :: state :: Entryとは何ですか?そしてそれはどこに定義されていますか?

+0

Googleのprotobufメッセージ処理の使い方と関係があると思いますが、この「クラス」を作成する方法や、実際にはどのようにしてApacheのメゾスで実際に使用されているのか分かりません。 – serup

+0

https://github.com/apache/mesos/blob/81cd023eb9945a22c220edc966393dcfcdbce256/include/mesos/state/state.proto#L19-L24) – janisz

+0

はいこれは、コンパイル時にEntryクラスを生成するために使用される.protoファイルです。しかし、それはどのようにコンパイルされ、Entryは実際にはmesosのために使われていますか? – serup

答えて

2

エントリはinclude/mesos/state/state.protoで定義されたメッセージです。これは、Makeによって他のprotobufメッセージとともにコンパイルされています(protocを呼び出してください)。コンパイル済みのC++ファイルをprotobufで生成します。あなたがthe official build guideをフォローしていることを前提に、build/include/mesos/state/state.pb.hEntryがあります。

エントリData Access Objectとして使用され、「不変性を強制する」Variableによってwrrappedすることができます。

エントリの使用例は、src/state/leveldb.cppまたはsrc/state/in_memory.cppにあります。あなたが見ることができるように、それを見つけることを可能にするいくつかの名前で救われるだけです。

+0

はい、それは私が自己を見つけたものでしたが、なぜメゾスがこの巨大なメッセージラッパーを使うのでしょうか?これを使うことから得られるプロジェクトは何ですか? – serup

+0

これは、ステートストアにアクセスするためのインターフェイスを定義するために使用されます。 protobufを使用しない場合、Entryの変更が下位互換性があるかどうかを手動で確認する必要があります。 Protobufはそれを箱から出します。さらに重要なことは、シリアライゼーションを処理することです。 [MESOS-5171](https://issues.apache.org/jira/browse/MESOS-5171)。 – janisz

+0

なので、それは状態処理をするために使用されていますか?私が完全に理解しているかどうかわからない場合 – serup

関連する問題