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
cpdf_object_avail.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_OBJECT_AVAIL_H_
6#define CORE_FPDFAPI_PARSER_CPDF_OBJECT_AVAIL_H_
7
8#include <set>
9#include <stack>
10
11#include "core/fpdfapi/parser/cpdf_data_avail.h"
12#include "core/fxcrt/retain_ptr.h"
13#include "core/fxcrt/unowned_ptr.h"
14
15class CPDF_Object;
18
19// Helper for check availability of object tree.
21 public:
24 RetainPtr<const CPDF_Object> root);
27 uint32_t obj_num);
28 virtual ~CPDF_ObjectAvail();
29
30 CPDF_DataAvail::DocAvailStatus CheckAvail();
31
32 protected:
33 virtual bool ExcludeObject(const CPDF_Object* object) const;
34
35 private:
36 bool LoadRootObject();
37 bool CheckObjects();
38 bool AppendObjectSubRefs(RetainPtr<const CPDF_Object> object,
39 std::stack<uint32_t>* refs) const;
40 void CleanMemory();
41 bool HasObjectParsed(uint32_t obj_num) const;
42
43 RetainPtr<CPDF_ReadValidator> const validator_;
45 RetainPtr<const CPDF_Object> root_;
46 std::set<uint32_t> parsed_objnums_;
47 std::stack<uint32_t> non_parsed_objects_;
48};
49
50#endif // CORE_FPDFAPI_PARSER_CPDF_OBJECT_AVAIL_H_
CPDF_DataAvail(FileAvail *pFileAvail, RetainPtr< IFX_SeekableReadStream > pFileRead)
~CPDF_DataAvail() override
DocAvailStatus IsPageAvail(uint32_t dwPage, DownloadHints *pHints)
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)
RetainPtr< const CPDF_Dictionary > GetPageDictionary(int index) const
RetainPtr< CPDF_ReadValidator > GetValidator() const
DocAvailStatus IsDocAvail(DownloadHints *pHints)
void OnObservableDestroyed() override
DocLinearizationStatus IsLinearizedPDF()
int GetPageCount() const
DocFormStatus IsFormAvail(DownloadHints *pHints)
FX_FILESIZE page_offset() const
void set_page_offset(FX_FILESIZE offset)
void AddIdentifier(uint32_t Identifier)
const std::vector< uint32_t > & Identifiers() const
void set_start_obj_num(uint32_t start_obj_num)
uint32_t start_obj_num() const
void set_page_length(uint32_t length)
void set_objects_count(uint32_t objects_count)
uint32_t objects_count() const
CPDF_DataAvail::DocAvailStatus CheckPage(uint32_t index)
virtual ~CPDF_HintTables()
FX_FILESIZE GetFirstPageObjOffset() const
bool GetPagePos(uint32_t index, FX_FILESIZE *szPageStartPos, FX_FILESIZE *szPageLength, uint32_t *dwObjNum) const
static std::unique_ptr< CPDF_HintTables > Parse(CPDF_SyntaxParser *parser, const CPDF_LinearizedHeader *pLinearized)
bool LoadHintStream(CPDF_Stream *pHintStream)
bool ReadSharedObjHintTable(CFX_BitStream *hStream, uint32_t offset)
CPDF_HintTables(CPDF_ReadValidator *pValidator, const CPDF_LinearizedHeader *pLinearized)
const std::vector< SharedObjGroupInfo > & SharedGroupInfos() const
bool ReadPageHintTable(CFX_BitStream *hStream)
const std::vector< PageInfo > & PageInfos() const
FX_FILESIZE GetHintStart() const
uint32_t GetFirstPageObjNum() const
FX_FILESIZE GetLastXRefOffset() const
FX_FILESIZE GetFirstPageEndOffset() const
static std::unique_ptr< CPDF_LinearizedHeader > Parse(CPDF_SyntaxParser *parser)
FX_FILESIZE GetMainXRefTableFirstEntryOffset() const
FX_FILESIZE GetFileSize() const
CPDF_LinearizedHeader(const CPDF_Dictionary *pDict, FX_FILESIZE szLastXRefOffset)
CPDF_DataAvail::DocAvailStatus CheckAvail()
CPDF_ObjectAvail(RetainPtr< CPDF_ReadValidator > validator, CPDF_IndirectObjectHolder *holder, RetainPtr< const CPDF_Object > root)
virtual ~CPDF_ObjectAvail()
virtual bool ExcludeObject(const CPDF_Object *object) const
CPDF_ObjectAvail(RetainPtr< CPDF_ReadValidator > validator, CPDF_IndirectObjectHolder *holder, uint32_t obj_num)
static constexpr uint32_t kInvalidObjNum
Definition cpdf_object.h:52
~CPDF_PageObjectAvail() override
bool ExcludeObject(const CPDF_Object *object) const override
uint32_t GetRefObjNum() const
FX_FILESIZE GetPos() const
void SetPos(FX_FILESIZE pos)
bool operator==(const char *ptr) const
bool operator!=(const char *ptr) const
Definition bytestring.h:130
#define FX_FILESIZE
Definition fx_types.h:19