5#ifndef CORE_FPDFAPI_PARSER_CPDF_OBJECT_AVAIL_H_
6#define CORE_FPDFAPI_PARSER_CPDF_OBJECT_AVAIL_H_
11#include "core/fpdfapi/parser/cpdf_data_avail.h"
12#include "core/fxcrt/retain_ptr.h"
13#include "core/fxcrt/unowned_ptr.h"
36 bool LoadRootObject();
39 std::stack<uint32_t>* refs)
const;
41 bool HasObjectParsed(uint32_t obj_num)
const;
46 std::set<uint32_t> parsed_objnums_;
47 std::stack<uint32_t> non_parsed_objects_;
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()
DocFormStatus IsFormAvail(DownloadHints *pHints)
FX_FILESIZE page_offset() const
void set_page_offset(FX_FILESIZE offset)
void AddIdentifier(uint32_t Identifier)
uint32_t page_length() const
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
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
~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
uint32_t m_dwObjectsCount