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