
thrift源码研究
whycold
这个作者很懒,什么都没留下…
展开
-
MD5算法原理
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。 在MD5算法中,首先需要对信息进行填充,使其位长对512求余的结果等于448。因此,信息的位长(Bits Length)将被扩展至N*512+448,N为一个非负整数,N可以是转载 2012-10-07 21:39:22 · 1207 阅读 · 0 评论 -
thrift-异步client&server使用例子
研究完异步client&server源码后,当然需要写个测试例子来验证一下! 同样采用test.thrift作为例子/* @file : test.thrift */ namespace cpp thrift.exampleservice Twitter { string sendString(1:string data);} 输入如下命令,自原创 2013-09-03 21:42:54 · 12153 阅读 · 0 评论 -
thrift源码研究-异步client&server
之前研究的thrift源码都是属于thrift的同步client&server,接下来看看异步client&server是怎样的? 通过搜索发现异步client&server网上介绍得少或基本没有相关信息,于是乎,还是啃源码来得爽快,因为有一句话我挺赞同的:源代码是最好的设计文档。 下面以test.thrift为例来深入研究异步client&server/* @f原创 2013-09-03 21:06:50 · 3542 阅读 · 0 评论 -
thrift之compiler源码详解-MD5
MD5的实现在md5.c文件里,它在compiler的作用是为了生成structure 和enum类型的fingerprinter,但fingerprinter暂没发现有何作用,哪位大牛若知道,请告知一下,谢谢! 好了,下面简单介绍一下MD5的实现。 MD5算法原理可查看:http://blog.youkuaiyun.com/whycold/article/details/8046271原创 2012-10-09 22:18:16 · 1260 阅读 · 0 评论 -
thrift源码研究-server类研究总结
server类处于thrift架构的最高层,用于服务器。 下面将对thrift的各种server类进行介绍。1、所有server类都是继承TServer;2、所有server类处理请求的流程基本相同:(1)首先获取连接client = serverTransport_->accept();(2)然后获取thransport和protocolinputTransp原创 2013-01-23 21:59:38 · 3587 阅读 · 0 评论 -
thrift源码研究-TJSONProtocol代码分析
本文转载TJSONProtocol:http://www.cnblogs.com/brucewoo/archive/2012/06/13/2547149.htmlJSON (JavaScript Object Notation)是一种数据交换格式,是以JavaScript为基础的数据表示语言,是在以下两种数据结构的基础上来定义基本的数据描述格式的:1) 含有名称/值对的集合;2) 一个转载 2013-01-23 21:43:13 · 2944 阅读 · 0 评论 -
thift源码研究-客户端代码分析
这部分代码是用于客户端请求服务器,它由thrift compiler自动生成。使用与前一篇一样的例子:thrift文件/** * gateway service definition. */service GatewayService{ i32 GetCompereCount( 1:i32 channel_id ), list GetCompereList( 1原创 2013-01-22 21:02:20 · 2313 阅读 · 0 评论 -
thrift源码研究-TBinaryProtocolT代码分析
接下来分析具体的协议类,本人看完具体协议类的代码后,再考虑写总结时发现,有人已先我一步对thrift的具体协议类进行了分析,而且较符合我的胃口,以于乎,我将转载他人的成果。本文转载TBinaryProtocolT:http://www.cnblogs.com/brucewoo/archive/2012/06/05/2537434.html TBinaryProtocolT是Thrif转载 2013-01-23 21:32:36 · 2322 阅读 · 0 评论 -
thift源码研究-TProcessor类体系
TProcessor类体系属于Processor层,是协议层与用户实现的服务代码的纽带,它由基类TProcessor和thrift compiler生成的Processor代码组成。例如:thrift文件/** * gateway service definition. */service GatewayService{ i32 GetCompereCount( 1:原创 2013-01-22 20:42:01 · 2881 阅读 · 0 评论 -
thrift源码研究-TCompactProtocolT代码分析
本文转载TCompactProtocolT:http://www.cnblogs.com/brucewoo/archive/2012/06/11/2545719.html这个协议类采用了zigzag 编码,这种编码是基于Variable-length quantity编码提出来的,因为Variable-length quantity编码对于负数的编码都需要很长的字节数,而zigzag转载 2013-01-23 21:36:26 · 1849 阅读 · 0 评论 -
thrift源码研究-TProtocol类体系架构分析
这里的协议是指数据格式的打包和解包方式。 TProtocol类体系属于thrift框架中的协议层,它提供多种协议,如TBinaryProtocolT、TCompactProtocolT、TJsonPotocolT和TDenseProtocolT等,以支持不同应用场景的数据传输,它的类图(转载)如下: 架构分析 由以上类图可以发现所有的协议类都从TProtocol类直接或原创 2013-01-23 21:15:58 · 5825 阅读 · 0 评论 -
thrift之compiler源码详解-总结
看完compiler源码,总的感觉是代码相当清晰,设计结构和命名都很清晰,没什么重复代码,不愧是fackbook那些大牛们写的代码!非常方便学习! 该compiler跟一般的编译器一样,都是先进行词法分析,然后是语法分析,最后是语议分析,下面将分别对这三个阶段作简单地总结:(1)词法分析 该compiler采用flex词法分析生成器来生成词法分析代码。词法分析是指从左到右一个字符一原创 2012-10-09 22:24:41 · 1725 阅读 · 0 评论 -
thrift之compiler源码详解-3
转至:http://www.cnblogs.com/brucewoo/archive/2012/04/25/2470687.html生成C++语言代码的代码详解 由于各种语言的代码生成结构和原理都差不多,所以我就只分析了生成C++代码的代码。这个功能是由t_cpp_generator类实现(在文件t_cpp_generator.cc定义和实现),直接继承至t_oop_gene转载 2012-10-07 21:51:36 · 1248 阅读 · 0 评论 -
thrift之compiler源码详解-1
转至:http://www.cnblogs.com/brucewoo/archive/2012/04/24/2467355.htmlcompiler是一个单独的工具程序,它会独立的生成一个可执行文件。第一节 类关系图本节主要展示了这个部分的整体类图,然后对这个类图做了简要的说明,有了这个类图让我在阅读这个部分源代码时不会找不到方向,让我更加清楚这个部分中的类是怎样协同工作的,类关系图如转载 2012-10-07 21:45:40 · 2449 阅读 · 0 评论 -
thrift之compiler源码详解-2
转至:http://www.cnblogs.com/brucewoo/archive/2012/04/25/2469140.html t_generator类和t_generator_registry类这个两个类的主要功能就是为生成所有语言的代码提供基础信息和提供具体代码生成器对象,上面就是调用这个两个类的方法来生成具体语言的代码生成器对象和执行生成代码的功能函数。下面主要分析两个函数的功转载 2012-10-07 21:47:59 · 1169 阅读 · 0 评论 -
thrift源码研究-transport类体系研究总结
transport类体系架构与TProtocol类体系架构一样,所以这里就不重复叙述了,想了解可转去TProtocol类体系架构分析那篇。 下面将对transport层的几种transport类进行介绍:1、TSocket 阻塞型socket, 用于客户端,采用系统函数read和write进行读写数据;2、TServerSocket 非阻塞型socket, 用于服务器端, acce原创 2013-01-23 21:54:38 · 9536 阅读 · 0 评论