|
Thrill
0.1
|
BufferReader represents a BufferRef with an additional cursor with which the memory can be read incrementally.
Definition at line 34 of file buffer_reader.hpp.
Inheritance diagram for BufferReader:
Collaboration diagram for BufferReader:#include <buffer_reader.hpp>
Public Member Functions | |
Construction | |
| BufferReader (const BufferRef &br) | |
| Constructor, assign memory area from BinaryBuilder. More... | |
| BufferReader (const void *data, size_t n) | |
| Constructor, assign memory area from pointer and length. More... | |
| BufferReader (const std::string &str) | |
| Constructor, assign memory area from string, does NOT copy. More... | |
Size Accessors | |
| size_t | cursor () const |
| Return the current read cursor. More... | |
| bool | available (size_t size) const |
| Return the number of bytes still available at the cursor. More... | |
| bool | empty () const |
| Return true if the cursor is at the end of the buffer. More... | |
| size_t | Size () const |
| bool | IsNull () const |
| Indicates if the reader was initialized with a nullptr and size 0. More... | |
Cursor Movement and Checks | |
| BufferReader & | Rewind () |
| Reset the read cursor. More... | |
| void | CheckAvailable (size_t n) const |
| BufferReader & | Skip (size_t n) |
| Advance the cursor given number of bytes without reading them. More... | |
Cursor Reading Methods | |
| BufferReader & | Read (void *outdata, size_t datalen) |
| std::string | Read (size_t datalen) |
| template<typename Type > | |
| Type | Get () |
| Byte | GetByte () |
| Fetch a single byte from the buffer, advancing the cursor. More... | |
| template<typename Type > | |
| Type | GetRaw () |
| BufferRef | GetBufferRef () |
Public Member Functions inherited from BufferRef | |
| BufferRef (const BufferBuilder &bb) | |
| Constructor, assign memory area from BufferBuilder. More... | |
| BufferRef (const void *data, size_t size) | |
| Constructor, assign memory area from pointer and length. More... | |
| BufferRef (const std::string &str) | |
| Constructor, assign memory area from string, does NOT copy. More... | |
| BufferRef (const Buffer &b) | |
| Constructor, assign memory area from net::Buffer, does NOT copy! More... | |
| const void * | data () const |
| Return a pointer to the currently kept memory area. More... | |
| bool | operator!= (const BufferRef &br) const noexcept |
| Compare contents of two BufferRefs. More... | |
| bool | operator== (const BufferRef &br) const noexcept |
| Compare contents of two BufferRefs. More... | |
| size_t | size () const |
| Return the currently valid length in bytes. More... | |
| Buffer | ToBuffer () |
| Explicit conversion to Buffer MOVING the memory ownership. More... | |
| std::string | ToString () const |
| Explicit conversion to std::string (copies memory of course). More... | |
Public Member Functions inherited from ItemReaderToolsBase< BufferReader > | |
| std::string | GetString () |
| Fetch a string which was Put via Put_string(). More... | |
| uint64_t | GetVarint () |
| Fetch a 64-bit varint from the reader at the cursor. More... | |
| uint32_t | GetVarint32 () |
| Fetch a varint with up to 32-bit from the reader at the cursor. More... | |
| uint32_t | PeekVarint32 () const |
| Fetch a varint with up to 32-bit from the reader at the cursor. More... | |
Private Attributes | |
| size_t | cursor_ = 0 |
| Current read cursor. More... | |
Additional Inherited Members | |
Protected Types inherited from BufferRef | |
| using | Byte = unsigned char |
| type used to store the bytes More... | |
Protected Attributes inherited from BufferRef | |
| const Byte * | data_ |
| Allocated buffer pointer. More... | |
| size_t | size_ |
| Size of valid data. More... | |
|
inline |
Constructor, assign memory area from BinaryBuilder.
Definition at line 47 of file buffer_reader.hpp.
|
inline |
Constructor, assign memory area from pointer and length.
Definition at line 52 of file buffer_reader.hpp.
|
inlineexplicit |
Constructor, assign memory area from string, does NOT copy.
Definition at line 57 of file buffer_reader.hpp.
|
inline |
Return the number of bytes still available at the cursor.
Definition at line 72 of file buffer_reader.hpp.
References BufferRef::size_.
Referenced by BufferReader::CheckAvailable().
|
inline |
Throws a std::underflow_error unless n bytes are available at the cursor.
Definition at line 103 of file buffer_reader.hpp.
References BufferReader::available().
Referenced by BufferReader::Get(), BufferReader::Read(), and BufferReader::Skip().
|
inline |
Return the current read cursor.
Definition at line 67 of file buffer_reader.hpp.
References BufferReader::cursor_.
|
inline |
Return true if the cursor is at the end of the buffer.
Definition at line 77 of file buffer_reader.hpp.
References BufferRef::size_.
|
inline |
Fetch a single item of the template type Type from the buffer, advancing the cursor. Be careful with implicit type conversions!
Definition at line 146 of file buffer_reader.hpp.
References BufferReader::CheckAvailable(), BufferReader::cursor_, and BufferRef::data_.
Referenced by StreamMultiplexerHeader::Parse(), and PartitionMultiplexerHeader::Parse().
|
inline |
Fetch a BufferRef to a binary string or blob which was Put via Put_string(). Does NOT copy the data.
Definition at line 173 of file buffer_reader.hpp.
References BufferRef::data_, ItemReaderToolsBase< BufferReader >::GetVarint(), and BufferReader::Skip().
|
inline |
Fetch a single byte from the buffer, advancing the cursor.
Definition at line 160 of file buffer_reader.hpp.
|
inline |
Fetch a single item of the template type Type from the buffer, advancing the cursor. Be careful with implicit type conversions!
Definition at line 167 of file buffer_reader.hpp.
|
inline |
Indicates if the reader was initialized with a nullptr and size 0.
Definition at line 86 of file buffer_reader.hpp.
References BufferRef::data_.
|
inline |
Fetch a number of unstructured bytes from the buffer, advancing the cursor.
Definition at line 123 of file buffer_reader.hpp.
References BufferReader::CheckAvailable(), and BufferRef::data_.
|
inline |
Fetch a number of unstructured bytes from the buffer as std::string, advancing the cursor.
Definition at line 135 of file buffer_reader.hpp.
References BufferReader::CheckAvailable(), and BufferRef::data_.
|
inline |
Reset the read cursor.
Definition at line 96 of file buffer_reader.hpp.
|
inline |
Definition at line 81 of file buffer_reader.hpp.
References BufferRef::size_.
|
inline |
Advance the cursor given number of bytes without reading them.
Definition at line 109 of file buffer_reader.hpp.
References BufferReader::CheckAvailable().
Referenced by BufferReader::GetBufferRef().
|
private |
Current read cursor.
Definition at line 40 of file buffer_reader.hpp.
Referenced by BufferReader::cursor(), and BufferReader::Get().