1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
module CBOR
#
# CBOR::Unpacker is an interface to deserialize objects from an internal buffer,
# which is a CBOR::Buffer.
#
class Unpacker
#
# Creates a CBOR::Unpacker instance.
#
# @overload initialize(options={})
# @param options [Hash]
#
# @overload initialize(io, options={})
# @param io [IO]
# @param options [Hash]
# This unpacker reads data from the _io_ to fill the internal buffer.
# _io_ must respond to readpartial(length [,string]) or read(length [,string]) method.
#
# See Buffer#initialize for supported options.
#
def initialize(*args)
end
#
# Internal buffer
#
# @return [CBOR::Buffer]
#
attr_reader :buffer
#
# Deserializes an object from internal buffer and returns it.
#
# If there're not enough buffer, this method raises EOFError.
# If data format is invalid, this method raises CBOR::MalformedFormatError.
# If the stack is too deep, this method raises CBOR::StackError.
#
# @return [Object] deserialized object
#
def read
end
alias unpack read
#
# Deserializes an object and ignores it. This method is faster than _read_.
#
# This method could raise same errors with _read_.
#
# @return nil
#
def skip
end
#
# Deserializes a nil value if it exists and returns _true_.
# Otherwise, if a byte exists but the byte doesn't represent nil value,
# returns _false_.
#
# If there're not enough buffer, this method raises EOFError.
#
# @return [Boolean]
#
def skip_nil
end
#
# Read a header of an array and returns its size.
# It converts a serialized array into a stream of elements.
#
# If the serialized object is not an array, it raises CBOR::TypeError.
# If there're not enough buffer, this method raises EOFError.
#
# @return [Integer] size of the array
#
def read_array_header
end
#
# Reads a header of an map and returns its size.
# It converts a serialized map into a stream of key-value pairs.
#
# If the serialized object is not a map, it raises CBOR::TypeError.
# If there're not enough buffer, this method raises EOFError.
#
# @return [Integer] size of the map
#
def read_map_header
end
#
# Appends data into the internal buffer.
# This method calls buffer.append(data).
#
# @param data [String]
# @return [Unpacker] self
#
def feed(data)
end
#
# Repeats to deserialize objects.
#
# It repeats until the internal buffer does not include any complete objects.
#
# If the an IO is set, it repeats to read data from the IO when the buffer
# becomes empty until the IO raises EOFError.
#
# This method could raise same errors with _read_ excepting EOFError.
#
# @yieldparam object [Object] deserialized object
# @return nil
#
def each(&block)
end
#
# Appends data into the internal buffer and repeats to deserialize objects.
# This method is equals to feed(data) && each.
#
# @param data [String]
# @yieldparam object [Object] deserialized object
# @return nil
#
def feed_each(data, &block)
end
#
# Resets deserialization state of the unpacker and clears the internal buffer.
#
# @return nil
#
def reset
end
end
end
|