问题描述
Apache Thrift是开放源代码RPC框架最受欢迎的选择之一(gRPC自发布以来也获得了很多关注)。
在c++我的设置中,我使用的是TMultiplexedProcessor
。我想这可能是任何TProcessor
,因为我只是想打印发送的内容。
此方法称为:
bool process(std::shared_ptr<protocol::TProtocol> in,std::shared_ptr<protocol::TProtocol> out,void* connectionContext) override {
我的想法是再次覆盖此参数,以便可以打印in
参数-但是如何编写TProtocol
来输出? (乍一看,序列化为字符串似乎并不简单)
我觉得可能还有其他或更简单的方法。所以我的问题是我该如何转储通过Thrift收到的所有消息(出于调试目的)?
解决方法
有TProtocolTap
和Sub GetData()
sFilterData = Console.In.ReadToEnd()
End Sub
。
用法示例可在thrift_dump.cpp
中找到:
TDebugProtocol