blob: bc0acc8835697de0498375f4feb0eef5905ec824 [file] [log] [blame]
David Reissea2cba82009-03-30 21:35:00 +00001%%
2%% Licensed to the Apache Software Foundation (ASF) under one
3%% or more contributor license agreements. See the NOTICE file
4%% distributed with this work for additional information
5%% regarding copyright ownership. The ASF licenses this file
6%% to you under the Apache License, Version 2.0 (the
7%% "License"); you may not use this file except in compliance
8%% with the License. You may obtain a copy of the License at
9%%
10%% http://www.apache.org/licenses/LICENSE-2.0
11%%
12%% Unless required by applicable law or agreed to in writing,
13%% software distributed under the License is distributed on an
14%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15%% KIND, either express or implied. See the License for the
16%% specific language governing permissions and limitations
17%% under the License.
18%%
19
David Reissac549552008-06-10 22:56:59 +000020-ifndef(THRIFT_PROTOCOL_INCLUDED).
David Reiss3e81fff2010-08-30 22:05:11 +000021-define(THRIFT_PROTOCOL_INCLUDED, true).
David Reissac549552008-06-10 22:56:59 +000022
David Hulle544a892017-07-27 02:15:00 +020023-record(protocol_message_begin, {name :: string(), type :: integer(), seqid :: integer()}).
24-record(protocol_struct_begin, {name :: string()}).
25-record(protocol_field_begin, {name :: string(), type :: integer(), id :: integer()}).
26-record(protocol_map_begin, {ktype :: integer(), vtype :: integer(), size :: integer()}).
27-record(protocol_list_begin, {etype :: integer(), size :: integer()}).
28-record(protocol_set_begin, {etype :: integer(), size :: integer()}).
David Reissac549552008-06-10 22:56:59 +000029
David Reissee933982010-08-30 22:05:22 +000030-type tprot_header_val() :: #protocol_message_begin{}
31 | #protocol_struct_begin{}
32 | #protocol_field_begin{}
33 | #protocol_map_begin{}
34 | #protocol_list_begin{}
35 | #protocol_set_begin{}
36 .
37-type tprot_empty_tag() :: message_end
38 | struct_begin
39 | struct_end
40 | field_end
41 | map_end
42 | list_end
43 | set_end
44 .
45-type tprot_header_tag() :: message_begin
46 | field_begin
47 | map_begin
48 | list_begin
49 | set_begin
50 .
51-type tprot_data_tag() :: ui32
52 | bool
53 | byte
54 | i16
55 | i32
56 | i64
57 | double
58 | string
59 .
David Reiss1cb979b2010-08-30 22:05:25 +000060-type tprot_cont_tag() :: {list, _Type}
61 | {map, _KType, _VType}
62 | {set, _Type}
63 .
David Reissee933982010-08-30 22:05:22 +000064
David Reissac549552008-06-10 22:56:59 +000065
66-endif.