// Copyright 2021 The Chromium 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 UI_GFX_IMAGE_BUFFER_W_STREAM_H_
#define UI_GFX_IMAGE_BUFFER_W_STREAM_H_

#include <stdint.h>
#include <vector>

#include "third_party/skia/include/core/SkStream.h"
#include "ui/gfx/gfx_export.h"

namespace gfx {

// Writes bytes to a std::vector that can be fetched. This is used to record the
// output of skia image encoding.
class GFX_EXPORT BufferWStream : public SkWStream {
 public:
  BufferWStream();
  BufferWStream(const BufferWStream&) = delete;
  BufferWStream& operator=(const BufferWStream&) = delete;
  ~BufferWStream() override;

  // Returns the output buffer by moving.
  std::vector<uint8_t> TakeBuffer();

  // SkWStream:
  bool write(const void* buffer, size_t size) override;
  size_t bytesWritten() const override;

 private:
  std::vector<uint8_t> result_;
};

}  // namespace gfx

#endif  // UI_GFX_IMAGE_BUFFER_W_STREAM_H_
