blob: ae24b1a0896a9dcc33ab7fd8ad03a1eaafca709c [file] [log] [blame]
K. Moon832a6942022-10-31 20:11:31 +00001// Copyright 2019 The PDFium Authors
Lei Zhang99d1b0c2019-02-05 18:59:12 +00002// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef TESTING_INVALID_SEEKABLE_READ_STREAM_H_
6#define TESTING_INVALID_SEEKABLE_READ_STREAM_H_
7
8#include "core/fxcrt/fx_stream.h"
Lei Zhangff87ac92021-04-13 17:46:26 +00009#include "core/fxcrt/retain_ptr.h"
Lei Zhang99d1b0c2019-02-05 18:59:12 +000010
11// A stream used for testing where reads always fail.
12class InvalidSeekableReadStream final : public IFX_SeekableReadStream {
13 public:
Tom Sepezb9d9b612020-06-17 20:47:22 +000014 CONSTRUCT_VIA_MAKE_RETAIN;
Lei Zhang99d1b0c2019-02-05 18:59:12 +000015
16 // IFX_SeekableReadStream overrides:
Tom Sepez6a39df12022-11-01 20:29:35 +000017 bool ReadBlockAtOffset(pdfium::span<uint8_t> buffer,
18 FX_FILESIZE offset) override;
Lei Zhang99d1b0c2019-02-05 18:59:12 +000019 FX_FILESIZE GetSize() override;
20
21 private:
22 explicit InvalidSeekableReadStream(FX_FILESIZE data_size);
23 ~InvalidSeekableReadStream() override;
24
25 const FX_FILESIZE data_size_;
26};
27
28#endif // TESTING_INVALID_SEEKABLE_READ_STREAM_H_