Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
fx_stream.h
Go to the documentation of this file.
1// Copyright 2014 The PDFium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef CORE_FXCRT_FX_STREAM_H_
8#define CORE_FXCRT_FX_STREAM_H_
9
10#include <stddef.h>
11#include <stdint.h>
12
13#include "core/fxcrt/bytestring.h"
14#include "core/fxcrt/fx_types.h"
15#include "core/fxcrt/retain_ptr.h"
16#include "core/fxcrt/span.h"
17
19 public:
20 // When `size` is 0, treat it as a no-op and return true.
21 virtual bool WriteBlock(pdfium::span<const uint8_t> data) = 0;
22
24 bool WriteByte(uint8_t byte);
25 bool WriteDWord(uint32_t i);
26 bool WriteFilesize(FX_FILESIZE size);
27
28 protected:
29 virtual ~IFX_WriteStream() = default;
30};
31
33 public:
34 virtual FX_FILESIZE CurrentOffset() const = 0;
35};
36
38 public:
39 virtual FX_FILESIZE GetSize() = 0;
40};
41
43 public IFX_WriteStream {};
44
47 public:
48 virtual bool Flush() = 0;
49};
50
51class IFX_SeekableReadStream : virtual public Retainable,
52 virtual public IFX_StreamWithSize {
53 public:
55 const char* filename);
56
57 virtual bool IsEOF();
58 virtual FX_FILESIZE GetPosition();
59 [[nodiscard]] virtual bool ReadBlockAtOffset(pdfium::span<uint8_t> buffer,
60 FX_FILESIZE offset) = 0;
61};
62
66
67#endif // CORE_FXCRT_FX_STREAM_H_
fxcrt::ByteString ByteString
Definition bytestring.h:180
#define DCHECK
Definition check.h:33
std::vector< RetainPtr< CPDF_Object > >::const_iterator const_iterator
Definition cpdf_array.h:29
CPDF_Creator(CPDF_Document *pDoc, RetainPtr< IFX_RetainableWriteStream > archive)
bool SetFileVersion(int32_t fileVersion)
void RemoveSecurity()
bool Create(uint32_t flags)
std::map< ByteString, RetainPtr< CPDF_Object >, std::less<> > DictMap
virtual FX_FILESIZE CurrentOffset() const =0
static RetainPtr< IFX_SeekableReadStream > CreateFromFilename(const char *filename)
Definition fx_stream.cpp:68
virtual FX_FILESIZE GetPosition()
Definition fx_stream.cpp:80
virtual bool ReadBlockAtOffset(pdfium::span< uint8_t > buffer, FX_FILESIZE offset)=0
virtual bool IsEOF()
Definition fx_stream.cpp:76
virtual bool Flush()=0
virtual FX_FILESIZE GetSize()=0
bool WriteFilesize(FX_FILESIZE size)
Definition fx_stream.cpp:61
bool WriteByte(uint8_t byte)
Definition fx_stream.cpp:50
bool WriteString(ByteStringView str)
Definition fx_stream.cpp:46
virtual ~IFX_WriteStream()=default
bool WriteDWord(uint32_t i)
Definition fx_stream.cpp:54
virtual bool WriteBlock(pdfium::span< const uint8_t > data)=0
static ByteString Format(const char *pFormat,...)
ByteString & operator=(ByteString &&that) noexcept
#define FPDFCREATE_INCREMENTAL
#define FPDFCREATE_NO_ORIGINAL
void * FX_Random_MT_Start(uint32_t dwSeed)
Definition fx_random.cpp:87
void FX_Random_MT_Close(void *pContext)
pdfium::CheckedNumeric< FX_FILESIZE > FX_SAFE_FILESIZE
#define FX_FILESIZE
Definition fx_types.h:19
fxcrt::ByteStringView ByteStringView