BaseProtocol
# File lib/thrift/protocol/binary_protocol.rb, line 28 def initialize(trans, strict_read=true, strict_write=true) super(trans) @strict_read = strict_read @strict_write = strict_write # Pre-allocated read buffer for fixed-size read methods. Needs to be at least 8 bytes long for # read_i64() and read_double(). @rbuf = Bytes.empty_byte_buffer(8) end
# File lib/thrift/protocol/binary_protocol.rb, line 167 def read_bool byte = read_byte byte != 0 end
# File lib/thrift/protocol/binary_protocol.rb, line 172 def read_byte val = trans.read_byte if (val > 0x7f) val = 0 - ((val - 1) ^ 0xff) end val end
# File lib/thrift/protocol/binary_protocol.rb, line 210 def read_double trans.read_into_buffer(@rbuf, 8) val = @rbuf.unpack('G').first val end
# File lib/thrift/protocol/binary_protocol.rb, line 138 def read_field_begin type = read_byte if (type == Types::STOP) [nil, type, 0] else id = read_i16 [nil, type, id] end end
# File lib/thrift/protocol/binary_protocol.rb, line 180 def read_i16 trans.read_into_buffer(@rbuf, 2) val, = @rbuf.unpack('n') if (val > 0x7fff) val = 0 - ((val - 1) ^ 0xffff) end val end
# File lib/thrift/protocol/binary_protocol.rb, line 189 def read_i32 trans.read_into_buffer(@rbuf, 4) val, = @rbuf.unpack('N') if (val > 0x7fffffff) val = 0 - ((val - 1) ^ 0xffffffff) end val end
# File lib/thrift/protocol/binary_protocol.rb, line 198 def read_i64 trans.read_into_buffer(@rbuf, 8) hi, lo = @rbuf.unpack('N2') if (hi > 0x7fffffff) hi ^= 0xffffffff lo ^= 0xffffffff 0 - (hi << 32) - lo - 1 else (hi << 32) + lo end end
# File lib/thrift/protocol/binary_protocol.rb, line 155 def read_list_begin etype = read_byte size = read_i32 [etype, size] end
# File lib/thrift/protocol/binary_protocol.rb, line 148 def read_map_begin ktype = read_byte vtype = read_byte size = read_i32 [ktype, vtype, size] end
# File lib/thrift/protocol/binary_protocol.rb, line 115 def read_message_begin version = read_i32 if version < 0 if (version & VERSION_MASK != VERSION_1) raise ProtocolException.new(ProtocolException::BAD_VERSION, 'Missing version identifier') end type = version & TYPE_MASK name = read_string seqid = read_i32 [name, type, seqid] else if strict_read raise ProtocolException.new(ProtocolException::BAD_VERSION, 'No version identifier, old protocol client?') end name = trans.read_all(version) type = read_byte seqid = read_i32 [name, type, seqid] end end
# File lib/thrift/protocol/binary_protocol.rb, line 161 def read_set_begin etype = read_byte size = read_i32 [etype, size] end
# File lib/thrift/protocol/binary_protocol.rb, line 216 def read_string size = read_i32 buffer = trans.read_all(size) Bytes.convert_to_string(buffer) end
# File lib/thrift/protocol/binary_protocol.rb, line 136 def read_struct_begin; nil; end
# File lib/thrift/protocol/binary_protocol.rb, line 80 def write_bool(bool) write_byte(bool ? 1 : 0) end
# File lib/thrift/protocol/binary_protocol.rb, line 84 def write_byte(byte) raise RangeError if byte < -2**31 || byte >= 2**32 trans.write([byte].pack('c')) end
# File lib/thrift/protocol/binary_protocol.rb, line 105 def write_double(dub) trans.write([dub].pack('G')) end
# File lib/thrift/protocol/binary_protocol.rb, line 55 def write_field_begin(name, type, id) write_byte(type) write_i16(id) end
# File lib/thrift/protocol/binary_protocol.rb, line 60 def write_field_stop write_byte(Thrift::Types::STOP) end
# File lib/thrift/protocol/binary_protocol.rb, line 89 def write_i16(i16) trans.write([i16].pack('n')) end
# File lib/thrift/protocol/binary_protocol.rb, line 93 def write_i32(i32) raise RangeError if i32 < -2**31 || i32 >= 2**31 trans.write([i32].pack('N')) end
# File lib/thrift/protocol/binary_protocol.rb, line 98 def write_i64(i64) raise RangeError if i64 < -2**63 || i64 >= 2**64 hi = i64 >> 32 lo = i64 & 0xffffffff trans.write([hi, lo].pack('N2')) end
# File lib/thrift/protocol/binary_protocol.rb, line 70 def write_list_begin(etype, size) write_byte(etype) write_i32(size) end
# File lib/thrift/protocol/binary_protocol.rb, line 64 def write_map_begin(ktype, vtype, size) write_byte(ktype) write_byte(vtype) write_i32(size) end
# File lib/thrift/protocol/binary_protocol.rb, line 38 def write_message_begin(name, type, seqid) # this is necessary because we added (needed) bounds checking to # write_i32, and 0x80010000 is too big for that. if strict_write write_i16(VERSION_1 >> 16) write_i16(type) write_string(name) write_i32(seqid) else write_string(name) write_byte(type) write_i32(seqid) end end
# File lib/thrift/protocol/binary_protocol.rb, line 75 def write_set_begin(etype, size) write_byte(etype) write_i32(size) end
Generated with the Darkfish Rdoc Generator 2.