Abstract binary stream for serialization.
More...
#include <io.h>
|
| virtual size_t | Read (void *ptr, size_t size)=0 |
| | Read raw bytes from the stream. More...
|
| |
| virtual size_t | Write (const void *ptr, size_t size)=0 |
| | Write raw bytes to the stream. More...
|
| |
| virtual | ~Stream ()=default |
| | Virtual destructor. More...
|
| |
| template<typename T > |
| void | Write (const T &data) |
| | Write a typed value using Serializer<T>. More...
|
| |
| template<typename T > |
| bool | Read (T *out_data) |
| | Read a typed value using Serializer<T>. More...
|
| |
| template<typename T > |
| void | WriteArray (const T *data, size_t num_elems) |
| | Write an array of typed values element by element. More...
|
| |
| template<typename T > |
| bool | ReadArray (T *data, size_t num_elems) |
| | Read an array of typed values element by element. More...
|
| |
Abstract binary stream for serialization.
Subclasses implement the raw Read/Write byte methods. The template Write/Read methods delegate to Serializer for endian-aware, type-safe binary I/O.
- Note
- Subclasses that override Read(void*, size_t) or Write(const void*, size_t) must add
using Stream::Read; and using Stream::Write; to make the template overloads visible (C++ name-hiding rule).
◆ ~Stream()
| virtual tvm::support::Stream::~Stream |
( |
| ) |
|
|
virtualdefault |
◆ Read() [1/2]
template<typename T >
| bool tvm::support::Stream::Read |
( |
T * |
out_data | ) |
|
|
inline |
Read a typed value using Serializer<T>.
- Template Parameters
-
| T | The data type (must have a Serializer<T> specialization). |
- Parameters
-
| out_data | Pointer to receive the value. |
- Returns
- true on success.
◆ Read() [2/2]
| virtual size_t tvm::support::Stream::Read |
( |
void * |
ptr, |
|
|
size_t |
size |
|
) |
| |
|
pure virtual |
Read raw bytes from the stream.
- Parameters
-
| ptr | Destination buffer. |
| size | Number of bytes to read. |
- Returns
- Number of bytes actually read.
◆ ReadArray()
template<typename T >
| bool tvm::support::Stream::ReadArray |
( |
T * |
data, |
|
|
size_t |
num_elems |
|
) |
| |
|
inline |
Read an array of typed values element by element.
- Parameters
-
| data | Pointer to the first element. |
| num_elems | Number of elements. |
- Returns
- true on success.
◆ Write() [1/2]
template<typename T >
| void tvm::support::Stream::Write |
( |
const T & |
data | ) |
|
|
inline |
Write a typed value using Serializer<T>.
- Template Parameters
-
| T | The data type (must have a Serializer<T> specialization). |
- Parameters
-
◆ Write() [2/2]
| virtual size_t tvm::support::Stream::Write |
( |
const void * |
ptr, |
|
|
size_t |
size |
|
) |
| |
|
pure virtual |
Write raw bytes to the stream.
- Parameters
-
| ptr | Source buffer. |
| size | Number of bytes to write. |
- Returns
- Number of bytes actually written.
◆ WriteArray()
template<typename T >
| void tvm::support::Stream::WriteArray |
( |
const T * |
data, |
|
|
size_t |
num_elems |
|
) |
| |
|
inline |
Write an array of typed values element by element.
- Parameters
-
| data | Pointer to the first element. |
| num_elems | Number of elements. |
The documentation for this class was generated from the following file: