tvm
Public Member Functions | List of all members
tvm::support::Stream Class Referenceabstract

Abstract binary stream for serialization. More...

#include <io.h>

Collaboration diagram for tvm::support::Stream:

Public Member Functions

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...
 

Detailed Description

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).

Constructor & Destructor Documentation

◆ ~Stream()

virtual tvm::support::Stream::~Stream ( )
virtualdefault

Virtual destructor.

Member Function Documentation

◆ Read() [1/2]

template<typename T >
bool tvm::support::Stream::Read ( T *  out_data)
inline

Read a typed value using Serializer<T>.

Template Parameters
TThe data type (must have a Serializer<T> specialization).
Parameters
out_dataPointer 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
ptrDestination buffer.
sizeNumber 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
dataPointer to the first element.
num_elemsNumber 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
TThe data type (must have a Serializer<T> specialization).
Parameters
dataThe value to write.

◆ 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
ptrSource buffer.
sizeNumber 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
dataPointer to the first element.
num_elemsNumber of elements.

The documentation for this class was generated from the following file: