#pragma once #include #include #include #include #include #include #include class BufferedReader { public: explicit BufferedReader(PackageStream* stream); int32_t Read(char* output_buffer, int32_t buffer_len); PackageStream* ps; }; BufferedReader::BufferedReader(PackageStream* stream) { char buf[1500]; int len = 0, add = -1; while (add != 0) { add = stream->ReadPackage(buf + len); len += add; } string str = ""; for (int i = 0; i < len; i++) { str += buf[i]; } ps = new PackageStream(buf, 1); } int32_t BufferedReader::Read(char* output_buffer, int32_t buffer_len) { int len = 0, add = -1; for (int i = 0; i < buffer_len && add != 0; i++) { add = ps->ReadPackage(output_buffer + len); len += add; } return len; }