注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

大概浏览了一下 Apache Thrift的源代码  

2012-09-12 17:33:33|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

代码很容易看,结构设计的很好啊!

参见http://thrift.apache.org/docs/concepts/  的说明,抽象出 server  Processor Protocol Transport四个 接口后,代码的层次分明,读起来很容易,确实值得学习啊!  然后再这这个基本接口上面,继承实现各种模型。


processor :     StatsProcessor.h  PeekProcessor.h   TAsyncProcessor

protocol  :      TBase64Utils.h   TBinaryProtocol.h TCompactProtocol.h TJSONProtocol.h

server :          TNonblockingServer.h  TSimpleServer.h    TThreadPoolServer.h    TThreadedServer.h

transport :     TBufferTransports.h  TFileTransport.h THttpServer.h THttpClient.h TPipe.h TSSLSocket.h TSocket.h TZlibTransport.h


想message的 打包,解包的实现,实在 protocol里面去做的,都用统一的接口,像 BinaryProtocol 的代码简单明了,又有高性能! 佩服啊!


idl的compiler部分,词法解析部分使用的flex和bison两个库,没看懂。值的学习一下,以后写解析器类的东西,可以考虑使用这两个 库来做。

flex

http://flex.sourceforge.net/ 

Bison

http://www.gnu.org/software/bison/ 


  评论这张
 
阅读(941)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017