码迷,mamicode.com
首页 > 其他好文 > 详细

2.thrift文件基本编写规则

时间:2015-07-13 01:09:38      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:java thrift

thrift文件的基本数据类型

The first thing to know about are types. The available types in Thrift are:

bool        Boolean, one byte

byte        Signed byte

i16         Signed 16-bit integer

i32         Signed 32-bit integer

i64         Signed 64-bit integer

double        64-bit floating point value

string        String

binary        Blob (byte array)

map         Map from one type to another

list        Ordered list of one type

set         Set of unique elements of one type

  

包含其他的thrift文件

Thrift files can reference other Thrift files to include common struct

and service definitions. These are found using the current path, or by

searching relative to any paths specified with the -I compiler flag.

Included objects are accessed using the name of the .thrift file as a

prefix. i.e. shared.SharedObject

include "shared.thrift"

包名

Thrift files can namespace, package, or prefix their output in various

target languages.

namespace cpp tutorial

namespace d tutorial

namespace java tutorial

namespace php tutorial

namespace perl tutorial

namespace haxe tutorial

  

别名

Thrift lets you do typedefs to get pretty names for your types. Standard

C style here.

typedef i32 MyInteger

常量

Thrift also lets you define constants for use across languages. Complex

types and structs are specified using JSON notation.

枚举

You can define enums, which are just 32 bit integers. Values are optional

and start at 1 if not supplied, C style again.

  

enum Operation {

ADD = 1,

SUBTRACT = 2,

MULTIPLY = 3,

DIVIDE = 4

}

bean

Structs are the basic complex data structures. They are comprised of fields

which each have an integer identifier, a type, a symbolic name, and an

optional default value.

Fields can be declared "optional", which ensures they will not be included

in the serialized output if they aren‘t set.  Note that this requires some

manual management in some languages.

struct Work {

1: i32 num1 = 0,

2: i32 num2,

3: Operation op,

4: optional string comment,

}

异常

Structs can also be exceptions, if they are nasty.

exception InvalidOperation {

1: i32 whatOp,

2: string why

}

服务

Ahh, now onto the cool part, defining a service. Services just need a name

and can optionally inherit from another service using the extends keyword.

service Calculator extends shared.SharedService {

A method definition looks like C code. It has a return type, arguments,

and optionally a list of exceptions that it may throw. Note that argument

lists and exception lists are specified using the exact same syntax as

field lists in struct or exception definitions.

void ping(),

 

i32 add(1:i32 num1, 2:i32 num2),

i32 calculate(1:i32 logid, 2:Work w) throws (1:InvalidOperation ouch),

This method has a oneway modifier. That means the client only makes

a request and does not listen for any response at all. Oneway methods

must be void.

oneway void zip()

 

}


本文出自 “theYllwRvrNo98” 博客,请务必保留此出处http://yellowriver.blog.51cto.com/8753974/1673446

2.thrift文件基本编写规则

标签:java thrift

原文地址:http://yellowriver.blog.51cto.com/8753974/1673446

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!