27#ifndef TVM_SUPPORT_BYTES_IO_H_
28#define TVM_SUPPORT_BYTES_IO_H_
30#include <tvm/ffi/error.h>
31#include <tvm/ffi/string.h>
50 : data_(reinterpret_cast<const char*>(data)), size_(size), pos_(0) {}
53 : data_(bytes.data()), size_(bytes.size()), pos_(0) {}
55 explicit BytesInStream(
const std::string& str) : data_(str.data()), size_(str.size()), pos_(0) {}
57 size_t Read(
void* ptr,
size_t size)
override {
58 size_t nread = std::min(size_ - pos_, size);
59 if (nread != 0) std::memcpy(ptr, data_ + pos_, nread);
64 size_t Write(
const void*,
size_t)
override {
65 TVM_FFI_THROW(InternalError) <<
"write to input stream";
85 size_t Write(
const void* ptr,
size_t size)
override {
86 if (size == 0)
return 0;
87 buffer_->append(
reinterpret_cast<const char*
>(ptr), size);
91 size_t Read(
void*,
size_t)
override {
92 TVM_FFI_THROW(InternalError) <<
"read from output stream";
Read-only stream over a fixed memory region.
Definition bytes_io.h:44
BytesInStream(const ffi::Bytes &bytes)
Definition bytes_io.h:52
size_t Read(void *ptr, size_t size) override
Read raw bytes from the stream.
Definition bytes_io.h:57
BytesInStream(const void *data, size_t size)
Definition bytes_io.h:49
BytesInStream(const std::string &str)
Definition bytes_io.h:55
size_t Write(const void *, size_t) override
Write raw bytes to the stream.
Definition bytes_io.h:64
Write-only stream that appends to a caller-provided std::string.
Definition bytes_io.h:78
size_t Write(const void *ptr, size_t size) override
Write raw bytes to the stream.
Definition bytes_io.h:85
BytesOutStream(std::string *buffer)
Definition bytes_io.h:83
size_t Read(void *, size_t) override
Read raw bytes from the stream.
Definition bytes_io.h:91
Abstract binary stream for serialization.
Definition io.h:57
virtual size_t Read(void *ptr, size_t size)=0
Read raw bytes from the stream.
virtual size_t Write(const void *ptr, size_t size)=0
Write raw bytes to the stream.
Binary stream I/O interface.
An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
Definition attr.h:23