Class: Thrift::BaseProtocol
- Inherits:
-
Object
- Object
- Thrift::BaseProtocol
show all
- Defined in:
- lib/thrift/protocol/base_protocol.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
-
#initialize(trans) ⇒ BaseProtocol
constructor
A new instance of BaseProtocol.
-
#native? ⇒ Boolean
-
#read_binary ⇒ Object
Reads a Thrift Binary (Thrift String without encoding).
-
#read_bool ⇒ Object
-
#read_byte ⇒ Object
-
#read_double ⇒ Object
-
#read_field_begin ⇒ Object
-
#read_field_end ⇒ Object
-
#read_i16 ⇒ Object
-
#read_i32 ⇒ Object
-
#read_i64 ⇒ Object
-
#read_list_begin ⇒ Object
-
#read_list_end ⇒ Object
-
#read_map_begin ⇒ Object
-
#read_map_end ⇒ Object
-
#read_message_begin ⇒ Object
-
#read_message_end ⇒ Object
-
#read_set_begin ⇒ Object
-
#read_set_end ⇒ Object
-
#read_string ⇒ Object
-
#read_struct_begin ⇒ Object
-
#read_struct_end ⇒ Object
-
#read_type(field_info) ⇒ Object
Reads a field value based on the field information.
-
#skip(type) ⇒ Object
-
#write_binary(buf) ⇒ Object
Writes a Thrift Binary (Thrift String with no encoding).
-
#write_bool(bool) ⇒ Object
-
#write_byte(byte) ⇒ Object
-
#write_double(dub) ⇒ Object
-
#write_field(*args) ⇒ Object
Writes a field based on the field information, field ID and value.
-
#write_field_begin(name, type, id) ⇒ Object
-
#write_field_end ⇒ Object
-
#write_field_stop ⇒ Object
-
#write_i16(i16) ⇒ Object
-
#write_i32(i32) ⇒ Object
-
#write_i64(i64) ⇒ Object
-
#write_list_begin(etype, size) ⇒ Object
-
#write_list_end ⇒ Object
-
#write_map_begin(ktype, vtype, size) ⇒ Object
-
#write_map_end ⇒ Object
-
#write_message_begin(name, type, seqid) ⇒ Object
-
#write_message_end ⇒ Object
-
#write_set_begin(etype, size) ⇒ Object
-
#write_set_end ⇒ Object
-
#write_string(str) ⇒ Object
-
#write_struct_begin(name) ⇒ Object
-
#write_struct_end ⇒ Object
-
#write_type(field_info, value) ⇒ Object
Writes a field value based on the field information.
Constructor Details
Returns a new instance of BaseProtocol.
44
45
46
|
# File 'lib/thrift/protocol/base_protocol.rb', line 44
def initialize(trans)
@trans = trans
end
|
Instance Attribute Details
#trans ⇒ Object
Returns the value of attribute trans.
42
43
44
|
# File 'lib/thrift/protocol/base_protocol.rb', line 42
def trans
@trans
end
|
Instance Method Details
#native? ⇒ Boolean
48
49
50
51
|
# File 'lib/thrift/protocol/base_protocol.rb', line 48
def native?
puts "wrong method is being called!"
false
end
|
#read_binary ⇒ Object
Reads a Thrift Binary (Thrift String without encoding). In Ruby 1.9+, all Strings will be returned with an Encoding of BINARY.
Returns a String.
209
210
211
|
# File 'lib/thrift/protocol/base_protocol.rb', line 209
def read_binary
raise NotImplementedError
end
|
#read_bool ⇒ Object
174
175
176
|
# File 'lib/thrift/protocol/base_protocol.rb', line 174
def read_bool
raise NotImplementedError
end
|
#read_byte ⇒ Object
178
179
180
|
# File 'lib/thrift/protocol/base_protocol.rb', line 178
def read_byte
raise NotImplementedError
end
|
#read_double ⇒ Object
194
195
196
|
# File 'lib/thrift/protocol/base_protocol.rb', line 194
def read_double
raise NotImplementedError
end
|
#read_field_begin ⇒ Object
150
151
152
|
# File 'lib/thrift/protocol/base_protocol.rb', line 150
def read_field_begin
raise NotImplementedError
end
|
#read_field_end ⇒ Object
154
|
# File 'lib/thrift/protocol/base_protocol.rb', line 154
def read_field_end; nil; end
|
#read_i16 ⇒ Object
182
183
184
|
# File 'lib/thrift/protocol/base_protocol.rb', line 182
def read_i16
raise NotImplementedError
end
|
#read_i32 ⇒ Object
186
187
188
|
# File 'lib/thrift/protocol/base_protocol.rb', line 186
def read_i32
raise NotImplementedError
end
|
#read_i64 ⇒ Object
190
191
192
|
# File 'lib/thrift/protocol/base_protocol.rb', line 190
def read_i64
raise NotImplementedError
end
|
#read_list_begin ⇒ Object
162
163
164
|
# File 'lib/thrift/protocol/base_protocol.rb', line 162
def read_list_begin
raise NotImplementedError
end
|
#read_list_end ⇒ Object
166
|
# File 'lib/thrift/protocol/base_protocol.rb', line 166
def read_list_end; nil; end
|
#read_map_begin ⇒ Object
156
157
158
|
# File 'lib/thrift/protocol/base_protocol.rb', line 156
def read_map_begin
raise NotImplementedError
end
|
#read_map_end ⇒ Object
160
|
# File 'lib/thrift/protocol/base_protocol.rb', line 160
def read_map_end; nil; end
|
#read_message_begin ⇒ Object
138
139
140
|
# File 'lib/thrift/protocol/base_protocol.rb', line 138
def read_message_begin
raise NotImplementedError
end
|
#read_message_end ⇒ Object
142
|
# File 'lib/thrift/protocol/base_protocol.rb', line 142
def read_message_end; nil; end
|
#read_set_begin ⇒ Object
168
169
170
|
# File 'lib/thrift/protocol/base_protocol.rb', line 168
def read_set_begin
raise NotImplementedError
end
|
#read_set_end ⇒ Object
172
|
# File 'lib/thrift/protocol/base_protocol.rb', line 172
def read_set_end; nil; end
|
#read_string ⇒ Object
Reads a Thrift String. In Ruby 1.9+, all Strings will be returned with an Encoding of UTF-8.
Returns a String.
201
202
203
|
# File 'lib/thrift/protocol/base_protocol.rb', line 201
def read_string
raise NotImplementedError
end
|
#read_struct_begin ⇒ Object
144
145
146
|
# File 'lib/thrift/protocol/base_protocol.rb', line 144
def read_struct_begin
raise NotImplementedError
end
|
#read_struct_end ⇒ Object
148
|
# File 'lib/thrift/protocol/base_protocol.rb', line 148
def read_struct_end; nil; end
|
#read_type(field_info) ⇒ Object
Reads a field value based on the field information.
field_info - A Hash containing the pertinent data to write:
:type - The Thrift::Types constant that determines how the value is written.
:binary - A flag that indicates if Thrift::Types::STRING is a binary string (string without encoding).
Returns the value read; object type varies based on field_info.
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
|
# File 'lib/thrift/protocol/base_protocol.rb', line 291
def read_type(field_info)
if field_info.is_a? Fixnum
field_info = {:type => field_info}
end
case field_info[:type]
when Types::BOOL
read_bool
when Types::BYTE
read_byte
when Types::DOUBLE
read_double
when Types::I16
read_i16
when Types::I32
read_i32
when Types::I64
read_i64
when Types::STRING
if field_info[:binary]
read_binary
else
read_string
end
else
raise NotImplementedError
end
end
|
#skip(type) ⇒ Object
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
|
# File 'lib/thrift/protocol/base_protocol.rb', line 322
def skip(type)
case type
when Types::STOP
nil
when Types::BOOL
read_bool
when Types::BYTE
read_byte
when Types::I16
read_i16
when Types::I32
read_i32
when Types::I64
read_i64
when Types::DOUBLE
read_double
when Types::STRING
read_string
when Types::STRUCT
read_struct_begin
while true
name, type, id = read_field_begin
break if type == Types::STOP
skip(type)
read_field_end
end
read_struct_end
when Types::MAP
ktype, vtype, size = read_map_begin
size.times do
skip(ktype)
skip(vtype)
end
read_map_end
when Types::SET
etype, size = read_set_begin
size.times do
skip(etype)
end
read_set_end
when Types::LIST
etype, size = read_list_begin
size.times do
skip(etype)
end
read_list_end
end
end
|
#write_binary(buf) ⇒ Object
Writes a Thrift Binary (Thrift String with no encoding). In Ruby 1.9+, the String passed will forced into BINARY encoding.
buf - The String to write.
Returns nothing.
134
135
136
|
# File 'lib/thrift/protocol/base_protocol.rb', line 134
def write_binary(buf)
raise NotImplementedError
end
|
#write_bool(bool) ⇒ Object
93
94
95
|
# File 'lib/thrift/protocol/base_protocol.rb', line 93
def write_bool(bool)
raise NotImplementedError
end
|
#write_byte(byte) ⇒ Object
97
98
99
|
# File 'lib/thrift/protocol/base_protocol.rb', line 97
def write_byte(byte)
raise NotImplementedError
end
|
#write_double(dub) ⇒ Object
113
114
115
|
# File 'lib/thrift/protocol/base_protocol.rb', line 113
def write_double(dub)
raise NotImplementedError
end
|
#write_field(*args) ⇒ Object
Writes a field based on the field information, field ID and value.
field_info - A Hash containing the definition of the field:
:name - The name of the field.
:type - The type of the field, which must be a Thrift::Types constant.
:binary - A Boolean flag that indicates if Thrift::Types::STRING is a binary string (string without encoding).
fid - The ID of the field. value - The field’s value to write; object type varies based on :type.
Returns nothing.
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
|
# File 'lib/thrift/protocol/base_protocol.rb', line 223
def write_field(*args)
if args.size == 3
field_info = args[0]
fid = args[1]
value = args[2]
elsif args.size == 4
field_info = {:name => args[0], :type => args[1]}
fid = args[2]
value = args[3]
else
raise ArgumentError, "wrong number of arguments (#{args.size} for 3)"
end
write_field_begin(field_info[:name], field_info[:type], fid)
write_type(field_info, value)
write_field_end
end
|
#write_field_begin(name, type, id) ⇒ Object
65
66
67
|
# File 'lib/thrift/protocol/base_protocol.rb', line 65
def write_field_begin(name, type, id)
raise NotImplementedError
end
|
#write_field_end ⇒ Object
69
|
# File 'lib/thrift/protocol/base_protocol.rb', line 69
def write_field_end; nil; end
|
#write_field_stop ⇒ Object
71
72
73
|
# File 'lib/thrift/protocol/base_protocol.rb', line 71
def write_field_stop
raise NotImplementedError
end
|
#write_i16(i16) ⇒ Object
101
102
103
|
# File 'lib/thrift/protocol/base_protocol.rb', line 101
def write_i16(i16)
raise NotImplementedError
end
|
#write_i32(i32) ⇒ Object
105
106
107
|
# File 'lib/thrift/protocol/base_protocol.rb', line 105
def write_i32(i32)
raise NotImplementedError
end
|
#write_i64(i64) ⇒ Object
109
110
111
|
# File 'lib/thrift/protocol/base_protocol.rb', line 109
def write_i64(i64)
raise NotImplementedError
end
|
#write_list_begin(etype, size) ⇒ Object
81
82
83
|
# File 'lib/thrift/protocol/base_protocol.rb', line 81
def write_list_begin(etype, size)
raise NotImplementedError
end
|
#write_list_end ⇒ Object
85
|
# File 'lib/thrift/protocol/base_protocol.rb', line 85
def write_list_end; nil; end
|
#write_map_begin(ktype, vtype, size) ⇒ Object
75
76
77
|
# File 'lib/thrift/protocol/base_protocol.rb', line 75
def write_map_begin(ktype, vtype, size)
raise NotImplementedError
end
|
#write_map_end ⇒ Object
79
|
# File 'lib/thrift/protocol/base_protocol.rb', line 79
def write_map_end; nil; end
|
#write_message_begin(name, type, seqid) ⇒ Object
53
54
55
|
# File 'lib/thrift/protocol/base_protocol.rb', line 53
def write_message_begin(name, type, seqid)
raise NotImplementedError
end
|
#write_message_end ⇒ Object
57
|
# File 'lib/thrift/protocol/base_protocol.rb', line 57
def write_message_end; nil; end
|
#write_set_begin(etype, size) ⇒ Object
87
88
89
|
# File 'lib/thrift/protocol/base_protocol.rb', line 87
def write_set_begin(etype, size)
raise NotImplementedError
end
|
#write_set_end ⇒ Object
91
|
# File 'lib/thrift/protocol/base_protocol.rb', line 91
def write_set_end; nil; end
|
#write_string(str) ⇒ Object
Writes a Thrift String. In Ruby 1.9+, the String passed will be transcoded to UTF-8.
str - The String to write.
Raises EncodingError if the transcoding to UTF-8 fails.
Returns nothing.
124
125
126
|
# File 'lib/thrift/protocol/base_protocol.rb', line 124
def write_string(str)
raise NotImplementedError
end
|
#write_struct_begin(name) ⇒ Object
59
60
61
|
# File 'lib/thrift/protocol/base_protocol.rb', line 59
def write_struct_begin(name)
raise NotImplementedError
end
|
#write_struct_end ⇒ Object
63
|
# File 'lib/thrift/protocol/base_protocol.rb', line 63
def write_struct_end; nil; end
|
#write_type(field_info, value) ⇒ Object
Writes a field value based on the field information.
field_info - A Hash containing the definition of the field:
:type - The Thrift::Types constant that determines how the value is written.
:binary - A Boolean flag that indicates if Thrift::Types::STRING is a binary string (string without encoding).
value - The field’s value to write; object type varies based on field_info.
Returns nothing.
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
|
# File 'lib/thrift/protocol/base_protocol.rb', line 251
def write_type(field_info, value)
if field_info.is_a? Fixnum
field_info = {:type => field_info}
end
case field_info[:type]
when Types::BOOL
write_bool(value)
when Types::BYTE
write_byte(value)
when Types::DOUBLE
write_double(value)
when Types::I16
write_i16(value)
when Types::I32
write_i32(value)
when Types::I64
write_i64(value)
when Types::STRING
if field_info[:binary]
write_binary(value)
else
write_string(value)
end
when Types::STRUCT
value.write(self)
else
raise NotImplementedError
end
end
|