From 3090e7b431f1d640ba4b02ec1527cf89d509d4bc Mon Sep 17 00:00:00 2001 From: hejun Date: Tue, 29 Apr 2025 21:22:48 +0800 Subject: [PATCH] Buffer waitting for complete --- .vscode/settings.json | 5 +++++ headers/hstream.hpp | 49 +++++++++++++++++++++++++++++++++++++++++++ headers/htypes.hpp | 13 ++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 headers/hstream.hpp create mode 100644 headers/htypes.hpp diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a89daed --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "cstdarg": "cpp" + } +} \ No newline at end of file diff --git a/headers/hstream.hpp b/headers/hstream.hpp new file mode 100644 index 0000000..46e56ca --- /dev/null +++ b/headers/hstream.hpp @@ -0,0 +1,49 @@ +#pragma once +#include +#include +#include +#include +/* +A data steam +@core pointer +-getp read pointer +-putp write pointer +-endp end pointer,putp can not greater endp + */ +class hstream +{ +private: + uint32_t getp; + + uint32_t putp; + + uint32_t size; + + char *_datap; + +public: + hstream(uint32_t buffer_size = HSTREAM_DEFAULT_SIZE) : getp(0), putp(0), size(buffer_size), _datap(nullptr) + { + try + { + _datap = new char[buffer_size]; + } + catch (const std::bad_alloc &e) + { + LOG(hlog_level::HLOG_CRIT, "Faied to alloc Memory"); + } + } + + bool write_char(char c); + bool write_u8(u_int8_t val); + bool write_u16(u_int16_t val); + bool write_u32(u_int32_t val); + bool write_u64(u_int64_t val); + + ~hstream(); +}; + +hstream::~hstream() +{ + delete[] _datap; +} diff --git a/headers/htypes.hpp b/headers/htypes.hpp new file mode 100644 index 0000000..bc366a8 --- /dev/null +++ b/headers/htypes.hpp @@ -0,0 +1,13 @@ +#pragma once + +using uint32_t = unsigned int; +using uint16_t = unsigned short; +using uint8_t = unsigned char; +using uint64_t = unsigned long long int; + +using sint8_t = char; +using sint16_t = short int; +using sint328_t = int; +using sint64_t = long long int; + +const uint32_t HSTREAM_DEFAULT_SIZE = (1 << 12);