如何让Apache Thrift为多线程服务器生成c ++代码?

时间:2015-12-21 14:36:56

标签: code-generation rpc thrift

我对节俭很新。仍在使用服务器和客户端工作的玩具示例 很好,除了我的服务器生成的代码总是TSimpleServer,从不TThreadedServer

即使我在教程示例中运行此操作,我也不会获得TThreadedServer服务器

thrift -r --gen cpp tutorial.thrift

1 个答案:

答案 0 :(得分:1)

简单直接的答案是:没办法。

稍长一点的答案是,文件名为*.skeleton.*的原因是有道理的。这些骨架文件仅作为入门的基础。它们绝不是一个完整的解决方案,更不用说满足所有需求的银弹了。

但是,由于Apache Thrift背后的一个想法是模块化,你只需通过改变一行代码就可以根据需要插入另一种服务器类型:

TThreadedServer server(processor, serverTransport, transportFactory, protocolFactory);

因为

,所以根本不需要在生成器中实现它
  • 所有服务器类型,传输,分层传输和协议支持的排列太多
  • 只需更改几行代码即可轻松切换所有这些组件

C ++是AFAIK唯一一种生成骨架文件的语言。据我所知,没有其他语言实现此功能。如果您想研究涉及更多功能的另一个示例,请查看/test/cpp下的Thrift测试实现。在查看该代码后,很多事情会变得更加清晰。