#pragma once
#include <iostream>
#include <string>
#include <cstdint>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <memory>
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;
}