1

Thrift for javascript によって自動生成された .read(input) および .write(output) 関数を理解しようとしています。

Javascript オブジェクトの一部であるこれらの関数とやり取りする方法に関するドキュメントが見つかりません。

リンクまたは説明?

4

1 に答える 1

2

したがって、.thrift ファイルで定義した各データ構造に対して、Apache Thrift は、そのタイプのオブジェクトのシリアル化 (書き込み) および逆シリアル化 (読み取り) を目的とした読み取りおよび書き込みメソッドを含むクラスを生成します。

現在、読み取りおよび書き込みメソッドは両方をパラメータとしてプロトコルを取り、プロトコルはトランスポートを指定して作成されます。次のリンクで、Thrift のコンテキストでプロトコルとトランスポートが何を意味するかを確認できます。

http://anomalizer.net/statistically-incorrect/2010/11/introduction-thrift-serialization/

ウィキペディアにある Thrift のレイヤーの写真と説明は、データが異なるレイヤー間でどのように渡されるかを理解するのにも役立ちます。

Javascript でこれを試したことはありませんが、thrift でサポートされているさまざまな言語のライブラリは非常によく似ています。したがって、Python では、読み取り/書き込みメソッドを次のように使用します。

//SERIALIZATION:
transportOut = TTransport.TMemoryBuffer()
protocolOut = TBinaryProtocol.TBinaryProtocol(transportOut)
work.write(protocolOut)
bytes = transportOut.getvalue() # the string 'bytes' can be written out to disk 
                            #  to be read in at a different time

// DESERIALIZATION
transportIn = TTransport.TMemoryBuffer(bytes)
protocolIn = TBinaryProtocol.TBinaryProtocol(transportIn)
moreWork = Work()
moreWork.read(protocolIn)

HTH

于 2012-11-20T10:50:59.547 に答える