基于注解注册毗连的Thrift框架(03)——TProtocol

打印 上一主题 下一主题

主题 911|帖子 911|积分 2733

前情提要

之前先容了TProcessor的同步和异步实现,也阐明了TAsyncMethodCall中的状态循环以及它是如何和TServer进行交互的。
TProtocol

TProtocol 是一个抽象类,主要做了两件事变:

  • 绑定一个TTransport
  • 界说一系列读写消息的编解码接口。包括两类,一类是复杂数据布局比如readMessageBegin, readMessageEnd,  writeMessageBegin, writMessageEnd.还有一类是根本数据布局,比如readI32, writeI32, readString, writeString
Schema

在编译完IDL之后,会生成一系列“方法名_args”/“方法名_result”的静态类,比如我有一个“add”方法。我就会生成add_args 和 add_result 两个类。
在Client中可以直接看到对这两个类的实例化:
  1. public void send_add(int arg1, int arg2) throws TException
  2. {
  3.           add_args args = new add_args();  // 这里
  4.           args.setArg1(arg1);
  5.           args.setArg2(arg2);
  6.           sendBase("add", args);
  7. }
复制代码
回到静态类中,这里以add_args为例子,可以看到里面有一个静态代码块,初始化了两个Schema。
[code]public static class add_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable   {        //...        private static final Map
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

慢吞云雾缓吐愁

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表