summaryrefslogtreecommitdiff
path: root/core/include
diff options
context:
space:
mode:
authorJun Fang <jun_fang@foxitsoftware.com>2015-11-02 13:45:35 +0800
committerJun Fang <jun_fang@foxitsoftware.com>2015-11-02 13:45:35 +0800
commitd946f3011984755b14d7dcfb05d572e870f93f3f (patch)
tree86fd77c65b920bf3e606c9048761a8e73ec0c6a2 /core/include
parentc88c42f317c0e94c4c7b98949bfe1a495aef07a9 (diff)
downloadpdfium-d946f3011984755b14d7dcfb05d572e870f93f3f.tar.xz
Support linearized loading
BUG=446715 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1353093003 .
Diffstat (limited to 'core/include')
-rw-r--r--core/include/fpdfapi/fpdf_parser.h49
1 files changed, 24 insertions, 25 deletions
diff --git a/core/include/fpdfapi/fpdf_parser.h b/core/include/fpdfapi/fpdf_parser.h
index 32509eb837..b1334e4c7a 100644
--- a/core/include/fpdfapi/fpdf_parser.h
+++ b/core/include/fpdfapi/fpdf_parser.h
@@ -7,34 +7,37 @@
#ifndef CORE_INCLUDE_FPDFAPI_FPDF_PARSER_H_
#define CORE_INCLUDE_FPDFAPI_FPDF_PARSER_H_
+#include "../../../public/fpdf_dataavail.h"
#include "../../../third_party/base/nonstd_unique_ptr.h"
#include "../fxcrt/fx_system.h"
#include "fpdf_objects.h"
-class CPDF_Document;
-class CPDF_Parser;
-class CPDF_SecurityHandler;
-class CPDF_StandardSecurityHandler;
-class CPDF_CryptoHandler;
-class CPDF_Object;
-class IFX_FileRead;
class CFDF_Document;
class CFDF_Parser;
-class CFX_Font;
class CFX_AffineMatrix;
+class CFX_DIBSource;
class CFX_FloatRect;
-class CPDF_Point;
+class CFX_Font;
+class CFX_PrivateData;
+class CPDF_ColorSpace;
+class CPDF_CryptoHandler;
class CPDF_DocPageData;
class CPDF_DocRenderData;
-class CPDF_ModuleMgr;
-class CFX_DIBSource;
+class CPDF_Document;
class CPDF_Font;
-class CPDF_Image;
-class CPDF_ColorSpace;
-class CPDF_Pattern;
class CPDF_FontEncoding;
+class CPDF_HintTables;
class CPDF_IccProfile;
-class CFX_PrivateData;
+class CPDF_Image;
+class CPDF_ModuleMgr;
+class CPDF_Object;
+class CPDF_Parser;
+class CPDF_Pattern;
+class CPDF_Point;
+class CPDF_SecurityHandler;
+class CPDF_StandardSecurityHandler;
+class IFX_FileRead;
+
#define FPDFPERM_PRINT 0x0004
#define FPDFPERM_MODIFY 0x0008
#define FPDFPERM_EXTRACT 0x0010
@@ -863,12 +866,7 @@ class IFX_DownloadHints {
virtual ~IFX_DownloadHints() {}
virtual void AddSegment(FX_FILESIZE offset, FX_DWORD size) = 0;
};
-#define PDF_IS_LINEARIZED 1
-#define PDF_NOT_LINEARIZED 0
-#define PDF_UNKNOW_LINEARIZED -1
-#define PDFFORM_NOTAVAIL 0
-#define PDFFORM_AVAIL 1
-#define PDFFORM_NOTEXIST 2
+
class IPDF_DataAvail {
public:
static IPDF_DataAvail* Create(IFX_FileAvail* pFileAvail,
@@ -878,12 +876,12 @@ class IPDF_DataAvail {
IFX_FileAvail* GetFileAvail() const { return m_pFileAvail; }
IFX_FileRead* GetFileRead() const { return m_pFileRead; }
- virtual FX_BOOL IsDocAvail(IFX_DownloadHints* pHints) = 0;
+ virtual int IsDocAvail(IFX_DownloadHints* pHints) = 0;
virtual void SetDocument(CPDF_Document* pDoc) = 0;
- virtual FX_BOOL IsPageAvail(int iPage, IFX_DownloadHints* pHints) = 0;
+ virtual int IsPageAvail(int iPage, IFX_DownloadHints* pHints) = 0;
virtual FX_BOOL IsLinearized() = 0;
- virtual int32_t IsFormAvail(IFX_DownloadHints* pHints) = 0;
- virtual int32_t IsLinearizedPDF() = 0;
+ virtual int IsFormAvail(IFX_DownloadHints* pHints) = 0;
+ virtual int IsLinearizedPDF() = 0;
virtual void GetLinearizedMainXRefInfo(FX_FILESIZE* pPos,
FX_DWORD* pSize) = 0;
@@ -925,6 +923,7 @@ enum PDF_DATAAVAIL_STATUS {
PDF_DATAAVAIL_HEADER = 0,
PDF_DATAAVAIL_FIRSTPAGE,
PDF_DATAAVAIL_FIRSTPAGE_PREPARE,
+ PDF_DATAAVAIL_HINTTABLE,
PDF_DATAAVAIL_END,
PDF_DATAAVAIL_CROSSREF,
PDF_DATAAVAIL_CROSSREF_ITEM,