1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2019 The PDFium Authors 2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file. 4*3ac0a46fSAndroid Build Coastguard Worker 5*3ac0a46fSAndroid Build Coastguard Worker #ifndef TESTING_INVALID_SEEKABLE_READ_STREAM_H_ 6*3ac0a46fSAndroid Build Coastguard Worker #define TESTING_INVALID_SEEKABLE_READ_STREAM_H_ 7*3ac0a46fSAndroid Build Coastguard Worker 8*3ac0a46fSAndroid Build Coastguard Worker #include "core/fxcrt/fx_stream.h" 9*3ac0a46fSAndroid Build Coastguard Worker #include "core/fxcrt/retain_ptr.h" 10*3ac0a46fSAndroid Build Coastguard Worker 11*3ac0a46fSAndroid Build Coastguard Worker // A stream used for testing where reads always fail. 12*3ac0a46fSAndroid Build Coastguard Worker class InvalidSeekableReadStream final : public IFX_SeekableReadStream { 13*3ac0a46fSAndroid Build Coastguard Worker public: 14*3ac0a46fSAndroid Build Coastguard Worker CONSTRUCT_VIA_MAKE_RETAIN; 15*3ac0a46fSAndroid Build Coastguard Worker 16*3ac0a46fSAndroid Build Coastguard Worker // IFX_SeekableReadStream overrides: 17*3ac0a46fSAndroid Build Coastguard Worker bool ReadBlockAtOffset(pdfium::span<uint8_t> buffer, 18*3ac0a46fSAndroid Build Coastguard Worker FX_FILESIZE offset) override; 19*3ac0a46fSAndroid Build Coastguard Worker FX_FILESIZE GetSize() override; 20*3ac0a46fSAndroid Build Coastguard Worker 21*3ac0a46fSAndroid Build Coastguard Worker private: 22*3ac0a46fSAndroid Build Coastguard Worker explicit InvalidSeekableReadStream(FX_FILESIZE data_size); 23*3ac0a46fSAndroid Build Coastguard Worker ~InvalidSeekableReadStream() override; 24*3ac0a46fSAndroid Build Coastguard Worker 25*3ac0a46fSAndroid Build Coastguard Worker const FX_FILESIZE data_size_; 26*3ac0a46fSAndroid Build Coastguard Worker }; 27*3ac0a46fSAndroid Build Coastguard Worker 28*3ac0a46fSAndroid Build Coastguard Worker #endif // TESTING_INVALID_SEEKABLE_READ_STREAM_H_ 29