// Copyright 2018 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef TESTING_STRING_WRITE_STREAM_H_
#define TESTING_STRING_WRITE_STREAM_H_

#include <sstream>
#include <string>

#include "core/fxcrt/fx_stream.h"

class StringWriteStream final : public IFX_SeekableWriteStream {
 public:
  StringWriteStream();
  ~StringWriteStream() override;

  // IFX_SeekableWriteStream
  FX_FILESIZE GetSize() override;
  bool Flush() override;
  bool WriteBlockAtOffset(const void* pData,
                          FX_FILESIZE offset,
                          size_t size) override;
  bool WriteString(ByteStringView str) override;

  std::string ToString() const { return stream_.str(); }

 private:
  std::ostringstream stream_;
};

#endif  // TESTING_STRING_WRITE_STREAM_H_
