From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.World/Buffer.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Minecraft.World/Buffer.h (limited to 'Minecraft.World/Buffer.h') diff --git a/Minecraft.World/Buffer.h b/Minecraft.World/Buffer.h new file mode 100644 index 00000000..1c66257b --- /dev/null +++ b/Minecraft.World/Buffer.h @@ -0,0 +1,34 @@ +#pragma once + +//A buffer is a linear, finite sequence of elements of a specific primitive type. Aside from its content, +//the essential properties of a buffer are its capacity, limit, and position: +// +//A buffer's capacity is the number of elements it contains. The capacity of a buffer is never negative and never changes. +// +//A buffer's limit is the index of the first element that should not be read or written. +//A buffer's limit is never negative and is never greater than its capacity. +// +//A buffer's position is the index of the next element to be read or written. +//A buffer's position is never negative and is never greater than its limit. +class Buffer +{ +protected: + const unsigned int m_capacity; + unsigned int m_position; + unsigned int m_limit; + unsigned int m_mark; + bool hasBackingArray; + +public: + Buffer( unsigned int capacity ); + virtual ~Buffer() {} + + Buffer *clear(); + Buffer *limit(unsigned int newLimit); + unsigned int limit(); + Buffer *position( unsigned int newPosition ); + unsigned int position(); + unsigned int remaining(); + + virtual Buffer *flip() = 0; +}; \ No newline at end of file -- cgit v1.2.3