Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
cpdf_read_validator.h
Go to the documentation of this file.
1
// Copyright 2017 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
#
ifndef
CORE_FPDFAPI_PARSER_CPDF_READ_VALIDATOR_H_
6
#
define
CORE_FPDFAPI_PARSER_CPDF_READ_VALIDATOR_H_
7
8
#
include
"core/fpdfapi/parser/cpdf_data_avail.h"
9
#
include
"core/fxcrt/fx_memory.h"
10
#
include
"core/fxcrt/fx_stream.h"
11
#
include
"core/fxcrt/retain_ptr.h"
12
#
include
"core/fxcrt/unowned_ptr.h"
13
14
class
CPDF_ReadValidator
:
public
IFX_SeekableReadStream
{
15
public
:
16
class
ScopedSession
{
17
public
:
18
FX_STACK_ALLOCATED();
19
20
explicit
ScopedSession
(
RetainPtr
<
CPDF_ReadValidator
> validator);
21
ScopedSession
(
const
ScopedSession
& that) =
delete
;
22
ScopedSession
&
operator
=(
const
ScopedSession
& that) =
delete
;
23
~
ScopedSession
();
24
25
private
:
26
RetainPtr
<
CPDF_ReadValidator
>
const
validator_;
27
const
bool
saved_read_error_;
28
const
bool
saved_has_unavailable_data_;
29
};
30
31
CONSTRUCT_VIA_MAKE_RETAIN
;
32
33
void
SetDownloadHints
(CPDF_DataAvail::
DownloadHints
* hints) {
34
hints_ = hints;
35
}
36
bool
read_error
()
const
{
return
read_error_; }
37
bool
has_unavailable_data
()
const
{
return
has_unavailable_data_; }
38
bool
has_read_problems
()
const
{
39
return
read_error
(
)
||
has_unavailable_data
(
)
;
40
}
41
42
void
ResetErrors
();
43
bool
IsWholeFileAvailable
();
44
bool
CheckDataRangeAndRequestIfUnavailable
(
FX_FILESIZE
offset, size_t size);
45
bool
CheckWholeFileAndRequestIfUnavailable
();
46
47
// IFX_SeekableReadStream overrides:
48
bool
ReadBlockAtOffset
(pdfium::span<uint8_t> buffer,
49
FX_FILESIZE
offset)
override
;
50
FX_FILESIZE
GetSize
()
override
;
51
52
protected
:
53
CPDF_ReadValidator
(
RetainPtr
<
IFX_SeekableReadStream
> file_read,
54
CPDF_DataAvail::
FileAvail
* file_avail);
55
~
CPDF_ReadValidator
()
override
;
56
57
private
:
58
void
ScheduleDownload(
FX_FILESIZE
offset, size_t size);
59
bool
IsDataRangeAvailable(
FX_FILESIZE
offset, size_t size)
const
;
60
61
RetainPtr
<
IFX_SeekableReadStream
>
const
file_read_;
62
UnownedPtr
<CPDF_DataAvail::
FileAvail
>
const
file_avail_;
63
UnownedPtr
<CPDF_DataAvail::
DownloadHints
> hints_;
64
bool
read_error_ =
false
;
65
bool
has_unavailable_data_ =
false
;
66
bool
whole_file_already_available_ =
false
;
67
const
FX_FILESIZE
file_size_;
68
};
69
70
#
endif
// CORE_FPDFAPI_PARSER_CPDF_READ_VALIDATOR_H_
ByteString
fxcrt::ByteString ByteString
Definition
bytestring.h:180
DCHECK
#define DCHECK
Definition
check.h:33
CPDF_CrossRefAvail
Definition
cpdf_cross_ref_avail.h:17
CPDF_CrossRefAvail::~CPDF_CrossRefAvail
~CPDF_CrossRefAvail()
CPDF_CrossRefAvail::last_crossref_offset
FX_FILESIZE last_crossref_offset() const
Definition
cpdf_cross_ref_avail.h:23
CPDF_CrossRefAvail::CPDF_CrossRefAvail
CPDF_CrossRefAvail(CPDF_SyntaxParser *parser, FX_FILESIZE last_crossref_offset)
Definition
cpdf_cross_ref_avail.cpp:28
CPDF_CrossRefAvail::CheckAvail
CPDF_DataAvail::DocAvailStatus CheckAvail()
Definition
cpdf_cross_ref_avail.cpp:37
CPDF_DataAvail::DownloadHints
Definition
cpdf_data_avail.h:67
CPDF_DataAvail::DownloadHints::AddSegment
virtual void AddSegment(FX_FILESIZE offset, size_t size)=0
CPDF_DataAvail::DownloadHints::~DownloadHints
virtual ~DownloadHints()
CPDF_DataAvail::FileAvail
Definition
cpdf_data_avail.h:61
CPDF_DataAvail::FileAvail::IsDataAvail
virtual bool IsDataAvail(FX_FILESIZE offset, size_t size)=0
CPDF_DataAvail::FileAvail::~FileAvail
virtual ~FileAvail()
CPDF_DataAvail::DocLinearizationStatus
DocLinearizationStatus
Definition
cpdf_data_avail.h:45
CPDF_DataAvail::kLinearizationUnknown
@ kLinearizationUnknown
Definition
cpdf_data_avail.h:46
CPDF_DataAvail::kNotLinearized
@ kNotLinearized
Definition
cpdf_data_avail.h:47
CPDF_DataAvail::kLinearized
@ kLinearized
Definition
cpdf_data_avail.h:48
CPDF_DataAvail::DocAvailStatus
DocAvailStatus
Definition
cpdf_data_avail.h:36
CPDF_DataAvail::kDataAvailable
@ kDataAvailable
Definition
cpdf_data_avail.h:39
CPDF_DataAvail::kDataNotAvailable
@ kDataNotAvailable
Definition
cpdf_data_avail.h:38
CPDF_DataAvail::kDataError
@ kDataError
Definition
cpdf_data_avail.h:37
CPDF_DataAvail::CPDF_DataAvail
CPDF_DataAvail(FileAvail *pFileAvail, RetainPtr< IFX_SeekableReadStream > pFileRead)
Definition
cpdf_data_avail.cpp:77
CPDF_DataAvail::~CPDF_DataAvail
~CPDF_DataAvail() override
Definition
cpdf_data_avail.cpp:83
CPDF_DataAvail::IsPageAvail
DocAvailStatus IsPageAvail(uint32_t dwPage, DownloadHints *pHints)
Definition
cpdf_data_avail.cpp:793
CPDF_DataAvail::GetHintTablesForTest
const CPDF_HintTables * GetHintTablesForTest() const
Definition
cpdf_data_avail.h:93
CPDF_DataAvail::ParseDocument
std::pair< CPDF_Parser::Error, std::unique_ptr< CPDF_Document > > ParseDocument(std::unique_ptr< CPDF_Document::RenderDataIface > pRenderData, std::unique_ptr< CPDF_Document::PageDataIface > pPageData, const ByteString &password)
Definition
cpdf_data_avail.cpp:1012
CPDF_DataAvail::GetPageDictionary
RetainPtr< const CPDF_Dictionary > GetPageDictionary(int index) const
Definition
cpdf_data_avail.cpp:928
CPDF_DataAvail::DocFormStatus
DocFormStatus
Definition
cpdf_data_avail.h:54
CPDF_DataAvail::kFormNotAvailable
@ kFormNotAvailable
Definition
cpdf_data_avail.h:56
CPDF_DataAvail::kFormError
@ kFormError
Definition
cpdf_data_avail.h:55
CPDF_DataAvail::kFormNotExist
@ kFormNotExist
Definition
cpdf_data_avail.h:58
CPDF_DataAvail::kFormAvailable
@ kFormAvailable
Definition
cpdf_data_avail.h:57
CPDF_DataAvail::GetValidator
RetainPtr< CPDF_ReadValidator > GetValidator() const
Definition
cpdf_data_avail.cpp:913
CPDF_DataAvail::IsDocAvail
DocAvailStatus IsDocAvail(DownloadHints *pHints)
Definition
cpdf_data_avail.cpp:97
CPDF_DataAvail::OnObservableDestroyed
void OnObservableDestroyed() override
Definition
cpdf_data_avail.cpp:89
CPDF_DataAvail::IsLinearizedPDF
DocLinearizationStatus IsLinearizedPDF()
Definition
cpdf_data_avail.cpp:477
CPDF_DataAvail::GetPageCount
int GetPageCount() const
Definition
cpdf_data_avail.cpp:922
CPDF_DataAvail::IsFormAvail
DocFormStatus IsFormAvail(DownloadHints *pHints)
Definition
cpdf_data_avail.cpp:959
CPDF_Dictionary::DictMap
std::map< ByteString, RetainPtr< CPDF_Object >, std::less<> > DictMap
Definition
cpdf_dictionary.h:31
CPDF_Document
Definition
cpdf_document.h:29
CPDF_HintTables
Definition
cpdf_hint_tables.h:22
CPDF_IndirectObjectHolder
Definition
cpdf_indirect_object_holder.h:21
CPDF_LinearizedHeader
Definition
cpdf_linearized_header.h:19
CPDF_Object
Definition
cpdf_object.h:50
CPDF_Parser
Definition
cpdf_parser.h:37
CPDF_ReadValidator::ScopedSession
Definition
cpdf_read_validator.h:16
CPDF_ReadValidator::ScopedSession::operator=
ScopedSession & operator=(const ScopedSession &that)=delete
CPDF_ReadValidator::ScopedSession::ScopedSession
ScopedSession(const ScopedSession &that)=delete
CPDF_ReadValidator::ScopedSession::ScopedSession
ScopedSession(RetainPtr< CPDF_ReadValidator > validator)
Definition
cpdf_read_validator.cpp:30
CPDF_ReadValidator::ScopedSession::~ScopedSession
~ScopedSession()
Definition
cpdf_read_validator.cpp:38
CPDF_ReadValidator
Definition
cpdf_read_validator.h:14
CPDF_ReadValidator::ResetErrors
void ResetErrors()
Definition
cpdf_read_validator.cpp:52
CPDF_ReadValidator::has_read_problems
bool has_read_problems() const
Definition
cpdf_read_validator.h:38
CPDF_ReadValidator::read_error
bool read_error() const
Definition
cpdf_read_validator.h:36
CPDF_ReadValidator::SetDownloadHints
void SetDownloadHints(CPDF_DataAvail::DownloadHints *hints)
Definition
cpdf_read_validator.h:33
CPDF_ReadValidator::CPDF_ReadValidator
CPDF_ReadValidator(RetainPtr< IFX_SeekableReadStream > file_read, CPDF_DataAvail::FileAvail *file_avail)
Definition
cpdf_read_validator.cpp:43
CPDF_ReadValidator::has_unavailable_data
bool has_unavailable_data() const
Definition
cpdf_read_validator.h:37
CPDF_ReadValidator::IsWholeFileAvailable
bool IsWholeFileAvailable()
Definition
cpdf_read_validator.cpp:116
CPDF_ReadValidator::GetSize
FX_FILESIZE GetSize() override
Definition
cpdf_read_validator.cpp:82
CPDF_ReadValidator::CheckDataRangeAndRequestIfUnavailable
bool CheckDataRangeAndRequestIfUnavailable(FX_FILESIZE offset, size_t size)
Definition
cpdf_read_validator.cpp:125
CPDF_ReadValidator::~CPDF_ReadValidator
~CPDF_ReadValidator() override
CPDF_ReadValidator::ReadBlockAtOffset
bool ReadBlockAtOffset(pdfium::span< uint8_t > buffer, FX_FILESIZE offset) override
Definition
cpdf_read_validator.cpp:57
CPDF_ReadValidator::CheckWholeFileAndRequestIfUnavailable
bool CheckWholeFileAndRequestIfUnavailable()
Definition
cpdf_read_validator.cpp:155
CPDF_SyntaxParser
Definition
cpdf_syntax_parser.h:32
IFX_SeekableReadStream
Definition
fx_stream.h:52
fxcrt::ByteString::operator==
bool operator==(const char *ptr) const
Definition
bytestring.cpp:208
fxcrt::ByteString::operator!=
bool operator!=(const char *ptr) const
Definition
bytestring.h:65
fxcrt::Observable::ObserverIface
Definition
observed_ptr.h:20
fxcrt::Observable
Definition
observed_ptr.h:17
fxcrt::RetainPtr
Definition
retain_ptr.h:28
fxcrt::UnownedPtr
Definition
unowned_ptr.h:76
pdfium::CFDETextOutLargeBitmapTest
Definition
cfde_textout_unittest.cpp:117
FX_FILESIZE
#define FX_FILESIZE
Definition
fx_types.h:19
CONSTRUCT_VIA_MAKE_RETAIN
#define CONSTRUCT_VIA_MAKE_RETAIN
Definition
retain_ptr.h:222
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fpdfapi
parser
cpdf_read_validator.h
Generated on
for Qt by
1.18.0