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_object_stream.h
Go to the documentation of this file.
1
// Copyright 2018 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_OBJECT_STREAM_H_
6
#
define
CORE_FPDFAPI_PARSER_CPDF_OBJECT_STREAM_H_
7
8
#
include
<
memory
>
9
#
include
<
vector
>
10
11
#
include
"core/fpdfapi/parser/cpdf_object.h"
12
#
include
"core/fxcrt/retain_ptr.h"
13
14
class
CPDF_IndirectObjectHolder
;
15
class
CPDF_Stream;
16
class
CPDF_StreamAcc;
17
class
IFX_SeekableReadStream
;
18
19
// Implementation of logic of PDF "Object Streams".
20
// See ISO 32000-1:2008 spec, section 7.5.7.
21
class
CPDF_ObjectStream
{
22
public
:
23
struct
ObjectInfo
{
24
ObjectInfo
(uint32_t obj_num, uint32_t obj_offset)
25
:
obj_num
(obj_num),
obj_offset
(obj_offset) {}
26
27
bool
operator
==(
const
ObjectInfo
& that)
const
{
28
return
obj_num
== that
.
obj_num
&&
obj_offset
== that
.
obj_offset
;
29
}
30
31
uint32_t
obj_num
;
32
uint32_t
obj_offset
;
33
};
34
35
static
std
::
unique_ptr
<
CPDF_ObjectStream
>
Create
(
36
RetainPtr
<
const
CPDF_Stream> stream);
37
38
~
CPDF_ObjectStream
();
39
40
RetainPtr
<
CPDF_Object
>
ParseObject
(
CPDF_IndirectObjectHolder
* pObjList,
41
uint32_t obj_number,
42
uint32_t archive_obj_index)
const
;
43
const
std
::
vector
<
ObjectInfo
>&
object_info
()
const
{
return
object_info_; }
44
45
private
:
46
explicit
CPDF_ObjectStream(
RetainPtr
<
const
CPDF_Stream> stream);
47
48
void
Init(
const
CPDF_Stream* stream);
49
RetainPtr
<
CPDF_Object
> ParseObjectAtOffset(
50
CPDF_IndirectObjectHolder
* pObjList,
51
uint32_t object_offset)
const
;
52
53
// Must outlive `data_stream_`.
54
RetainPtr
<CPDF_StreamAcc>
const
stream_acc_;
55
RetainPtr
<
IFX_SeekableReadStream
> data_stream_;
56
int
first_object_offset_ = 0;
57
std::vector<ObjectInfo> object_info_;
58
};
59
60
#
endif
// CORE_FPDFAPI_PARSER_CPDF_OBJECT_STREAM_H_
DCHECK
#define DCHECK
Definition
check.h:33
CPDF_Dictionary::DictMap
std::map< ByteString, RetainPtr< CPDF_Object >, std::less<> > DictMap
Definition
cpdf_dictionary.h:31
CPDF_IndirectObjectHolder
Definition
cpdf_indirect_object_holder.h:21
CPDF_ObjectStream
Definition
cpdf_object_stream.h:21
CPDF_ObjectStream::Create
static std::unique_ptr< CPDF_ObjectStream > Create(RetainPtr< const CPDF_Stream > stream)
Definition
cpdf_object_stream.cpp:55
CPDF_ObjectStream::~CPDF_ObjectStream
~CPDF_ObjectStream()
CPDF_ObjectStream::object_info
const std::vector< ObjectInfo > & object_info() const
Definition
cpdf_object_stream.h:43
CPDF_ObjectStream::ParseObject
RetainPtr< CPDF_Object > ParseObject(CPDF_IndirectObjectHolder *pObjList, uint32_t obj_number, uint32_t archive_obj_index) const
Definition
cpdf_object_stream.cpp:73
CPDF_Object
Definition
cpdf_object.h:50
CPDF_Object::GetDict
RetainPtr< const CPDF_Dictionary > GetDict() const
Definition
cpdf_object.cpp:79
CPDF_Parser
Definition
cpdf_parser.h:37
CPDF_Parser::kMaxObjectNumber
static constexpr uint32_t kMaxObjectNumber
Definition
cpdf_parser.h:57
CPDF_SyntaxParser
Definition
cpdf_syntax_parser.h:32
CPDF_SyntaxParser::GetDirectNum
uint32_t GetDirectNum()
Definition
cpdf_syntax_parser.cpp:839
CPDF_SyntaxParser::SetPos
void SetPos(FX_FILESIZE pos)
Definition
cpdf_syntax_parser.cpp:488
CPDF_SyntaxParser::GetObjectBody
RetainPtr< CPDF_Object > GetObjectBody(CPDF_IndirectObjectHolder *pObjList)
Definition
cpdf_syntax_parser.cpp:493
IFX_SeekableReadStream
Definition
fx_stream.h:52
fxcrt::RetainPtr
Definition
retain_ptr.h:28
pdfium::CFDETextOutLargeBitmapTest
Definition
cfde_textout_unittest.cpp:117
FX_SAFE_FILESIZE
pdfium::CheckedNumeric< FX_FILESIZE > FX_SAFE_FILESIZE
Definition
fx_safe_types.h:17
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
CPDF_ObjectStream::ObjectInfo
Definition
cpdf_object_stream.h:23
CPDF_ObjectStream::ObjectInfo::obj_offset
uint32_t obj_offset
Definition
cpdf_object_stream.h:32
CPDF_ObjectStream::ObjectInfo::obj_num
uint32_t obj_num
Definition
cpdf_object_stream.h:31
CPDF_ObjectStream::ObjectInfo::ObjectInfo
ObjectInfo(uint32_t obj_num, uint32_t obj_offset)
Definition
cpdf_object_stream.h:24
CPDF_ObjectStream::ObjectInfo::operator==
bool operator==(const ObjectInfo &that) const
Definition
cpdf_object_stream.h:27
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fpdfapi
parser
cpdf_object_stream.h
Generated on
for Qt by
1.18.0