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 counter = 0; for (int i = 0; i < numOfChar; ++i) { output_buffer[i] = tempStr[i]; ++counter; } return counter; delete(tempStr); } private: PackageStream* stream_; };