17#include <unordered_map>
52 template <IsCopyable T>
70 uint64_t temp = uint64_t(*data);
71 Write(&temp,
sizeof(uint64_t));
79 size_t len = std::size(*data);
87 Write(str, strlen(str) + 1);
91 void Write(
const std::list<T>* container)
94 for (
auto& iter : *container)
100 template <
typename T>
101 void Write(
const std::vector<T>* container)
104 for (
auto& iter : *container)
113 for (
auto& iter : *str)
119 template <
typename K,
typename V>
120 void Write(
const std::map<K, V>* container)
123 for (
auto& iter : *container)
130 template <
typename K,
typename V>
131 void Write(
const std::unordered_map<K, V>* container)
134 for (
auto& iter : *container)
144 void Write(
const void* data,
size_t byte_count);
150 void Fill(
int val,
size_t byte_count);
155 bool Save(std::string_view path_name,
bool compress =
false);
185 void _realloc(
size_t size);
void SetPos(size_t pos)
设置 流位置,如果内存不够会扩大
void Compress(Memory::CompressMode mode)
压缩当前内存
void Write(const std::map< K, V > *container)
void WriteSize(const T *data)
写入容器的大小
void Write(const std::unordered_map< K, V > *container)
void WriteCString(const char *str)
写入C风格字符串
void Write(const Buffer *data)
bool Save(std::string_view path_name, bool compress=false)
保存到文件
const std::byte * GetData()
返回指向的内存指针
void Write(const std::string *str)
void Write(const std::list< T > *container)
void Write(const std::vector< T > *container)
void Fill(int val, size_t byte_count)
填充一段数据,本质调用memset
void SetDelete(bool d)
标记内存已经被移走所有权,析构函数不再释放
void Write64(const T *data)
写入一个类型以64位,对于在64位平台的大小不一致,所以特殊处理
void Write(const T *data)
写入一个对象
void Write(const void *data, size_t byte_count)
写入一段数据,最基础操作
void Clear()
清除数据(移动head标记到内存最开始)