Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Thrift Wiki" for change 
notification.

The "ThriftTypes" page has been changed by GopinathSrinivasan.
http://wiki.apache.org/thrift/ThriftTypes?action=diff&rev1=10&rev2=11

--------------------------------------------------

  = Introduction =
- 
- The Thrift type system is intended to allow programmers to use native types 
as much as possible, no matter what programming language they are working in. 
This information is based on, and supersedes, the information in the 
[[http://developers.facebook.com/thrift/thrift-20070401.pdf|Thrift 
Whitepaper]]. The [[ThriftIDL]] provides descriptions of the types which are 
used to generate cde for each target language.
+ The Thrift type system is intended to allow programmers to use native types 
as much as possible, no matter what programming language they are working in. 
This information is based on, and supersedes, the information in the 
[[http://developers.facebook.com/thrift/thrift-20070401.pdf|Thrift 
Whitepaper]]. The [[ThriftIDL]] provides descriptions of the types which are 
used to generate code for each target language.
  
  = Base Types =
- 
  The base types were selected with the goal of simplicity and clarity rather 
than abundance, focusing on the key types available in all programming 
languages.
  
  '''{{{bool}}}''': A boolean value ({{{true}}} or {{{false}}})
@@ -25, +23 @@

  Note the absence of unsigned integer types. This is due to the fact that 
there are no native unsigned integer types in many programming languages.
  
  == Special Types ==
+ '''{{{binary}}}''': a sequence of unencoded bytes
  
- '''{{{binary}}}''': a sequence of unencoded bytes
-   * N.B.: This is currently a specialized form of the {{{string}}} type 
above, added to provide better interoperability with Java. The current 
plan-of-record is to elevate this to a base type at some point.
+  * N.B.: This is currently a specialized form of the {{{string}}} type above, 
added to provide better interoperability with Java. The current plan-of-record 
is to elevate this to a base type at some point.
  
  = Structs =
- 
  Thrift structs define a common object -- they are essentially equivalent to 
classes in OOP languages, but without inheritance. A struct has a set of 
strongly typed fields, each with a unique name identifier. Fields may have 
various annotations (numeric field IDs, optional default values, etc.) that are 
described in the [[ThriftIDL]].
  
  = Containers =
- 
  Thrift containers are strongly typed containers that map to commonly used and 
commonly available container types in most programming languages.
  
  There are three container types:
+ 
   * '''{{{list<}}}''type''{{{>}}}''': An ordered list of elements. Translates 
to an STL {{{vector}}}, Java {{{ArrayList}}}, native arrays in scripting 
languages, etc.
   * '''{{{set<}}}''type''{{{>}}}''': An unordered set of unique elements. 
Translates to an STL {{{set}}}, Java {{{HashSet}}}, {{{set}}} in Python, etc. 
This type is not supported in PHP! Use lists instead.
   * '''{{{map<}}}''type1''{{{,}}}''type2''{{{>}}}''': A map of strictly unique 
keys to values. Translates to an STL {{{map}}}, Java {{{HashMap}}}, PHP 
associative array, Python/Ruby dictionary, etc.
@@ -49, +46 @@

   * N.B.: For maximal compatibility, the key type for {{{map}}} should be a 
basic type rather than a struct or container type. There are some languages 
which do not support more complex key types in their native {{{map}}} types. In 
addition the JSON protocol only supports key types that are base types.
  
  = Exceptions =
- 
  Exceptions are functionally equivalent to structs, except that they inherit 
from the native exception base class as appropriate in each target programming 
language, in order to seamlessly integrate with the native exception handling 
in any given language.
  
  = Services =
- 
  Services are defined using Thrift types. Definition of a service is 
semantically equivalent to defining an interface (or a pure virtual abstract 
class) in object oriented programming. The Thrift compiler generates fully 
functional client and server stubs that implement the interface.
  
  A service consists of a set of named functions, each with a list of 
parameters and a return type.

Reply via email to