class BufferedReader {
public:
explicit BufferedReader(PackageStream* stream) {
stream_ = stream;
}
int32_t Read(char* output_buffer, int32_t buffer_len) {
char* tempStr = new char(stream_->PackageLen());
int32_t numOfChar = stream_->ReadPackage(tempStr);
int32_t minSize = numOfChar < buffer_len ? numOfChar : buffer_len;
for (int i = 0; i < minSize; ++i) {
output_buffer[i] = tempStr[i];
}
delete(tempStr);
return minSize;
}
private:
PackageStream* stream_;
};