#pragma once #include #include #include #include #include #include #include using namespace std; class BufferedReader { public: explicit BufferedReader(PackageStream* stream); int32_t Read(char* output_buffer, int32_t buffer_len); PackageStream* ps; }; BufferedReader::BufferedReader(PackageStream* stream) { ps = stream; } int32_t BufferedReader::Read(char* output_buffer, int32_t buffer_len) { int ans = 0, new_len = -1; while (new_len != 0) { new_len = ps->ReadPackage(output_buffer + ans); ans += new_len; } return ans; }