Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: core/include/fpdfapi/fpdf_parser.h

Issue 873523002: Use IPDF_DataAvail interface to hide CPDF_DataAvail. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #ifndef _FPDF_PARSER_ 7 #ifndef _FPDF_PARSER_
8 #define _FPDF_PARSER_ 8 #define _FPDF_PARSER_
9 #ifndef _FX_BASIC_H_ 9 #ifndef _FX_BASIC_H_
10 #include "../fxcrt/fx_ext.h" 10 #include "../fxcrt/fx_ext.h"
(...skipping 851 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 }; 862 };
863 #define PDF_IS_LINEARIZED 1 863 #define PDF_IS_LINEARIZED 1
864 #define PDF_NOT_LINEARIZED 0 864 #define PDF_NOT_LINEARIZED 0
865 #define PDF_UNKNOW_LINEARIZED -1 865 #define PDF_UNKNOW_LINEARIZED -1
866 #define PDFFORM_NOTAVAIL 0 866 #define PDFFORM_NOTAVAIL 0
867 #define PDFFORM_AVAIL 1 867 #define PDFFORM_AVAIL 1
868 #define PDFFORM_NOTEXIST 2 868 #define PDFFORM_NOTEXIST 2
869 class IPDF_DataAvail 869 class IPDF_DataAvail
870 { 870 {
871 public: 871 public:
872 static IPDF_DataAvail* Create(IFX_FileAvail* pFileAvail, IFX_FileRead* pFile Read);
872 virtual ~IPDF_DataAvail() { } 873 virtual ~IPDF_DataAvail() { }
873 874
875 IFX_FileAvail* GetFileAvail() const { return m_pFileAvail; }
876 IFX_FileRead* GetFileRead() const { return m_pFileRead; }
877
874 virtual FX_BOOL IsDocAvail(IFX_DownloadHints* pHints) = 0; 878 virtual FX_BOOL IsDocAvail(IFX_DownloadHints* pHints) = 0;
879 virtual void SetDocument(CPDF_Document* pDoc) = 0;
880 virtual FX_BOOL IsPageAvail(int iPage, IFX_DownloadHints * pHints) = 0;
881 virtual FX_BOOL IsLinearized() = 0;
882 virtual FX_INT32 IsFormAvail(IFX_DownloadHints *pHints) = 0;
883 virtual FX_INT32 IsLinearizedPDF() = 0;
884 virtual void GetLinearizedMainXRefInfo(FX_FIL ESIZE *pPos, FX_DWORD *pSize) = 0;
875 885
876 virtual void» » » SetDocument(CPDF_Document* pDoc) = 0; 886 protected:
887 IPDF_DataAvail(IFX_FileAvail* pFileAvail, IFX_FileRead* pFileRead);
877 888
878 virtual FX_BOOL» » » IsPageAvail(int iPage, IFX_DownloadHints * pHints) = 0; 889 IFX_FileAvail* m_pFileAvail;
879 890 IFX_FileRead* m_pFileRead;
880 virtual FX_BOOL» » » IsLinearized() = 0;
881
882 virtual FX_INT32» » IsFormAvail(IFX_DownloadHints *pHints) = 0;
883
884 virtual FX_INT32» » IsLinearizedPDF() = 0;
885
886 virtual void» » » » GetLinearizedMainXRefInfo(FX_FIL ESIZE *pPos, FX_DWORD *pSize) = 0;
887 }; 891 };
888 class CPDF_SortObjNumArray : public CFX_Object 892 class CPDF_SortObjNumArray : public CFX_Object
889 { 893 {
890 public: 894 public:
891 895
892 void AddObjNum(FX_DWORD dwObjNum); 896 void AddObjNum(FX_DWORD dwObjNum);
893 897
894 FX_BOOL Find(FX_DWORD dwObjNum); 898 FX_BOOL Find(FX_DWORD dwObjNum);
895 899
896 void RemoveAll() 900 void RemoveAll()
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
935 PDF_DATAAVAIL_ACROFORM_SUBOBJECT, 939 PDF_DATAAVAIL_ACROFORM_SUBOBJECT,
936 PDF_DATAAVAIL_PAGETREE, 940 PDF_DATAAVAIL_PAGETREE,
937 PDF_DATAAVAIL_PAGE, 941 PDF_DATAAVAIL_PAGE,
938 PDF_DATAAVAIL_PAGE_LATERLOAD, 942 PDF_DATAAVAIL_PAGE_LATERLOAD,
939 PDF_DATAAVAIL_RESOURCES, 943 PDF_DATAAVAIL_RESOURCES,
940 PDF_DATAAVAIL_DONE, 944 PDF_DATAAVAIL_DONE,
941 PDF_DATAAVAIL_ERROR, 945 PDF_DATAAVAIL_ERROR,
942 PDF_DATAAVAIL_LOADALLFILE, 946 PDF_DATAAVAIL_LOADALLFILE,
943 PDF_DATAAVAIL_TRAILER_APPEND 947 PDF_DATAAVAIL_TRAILER_APPEND
944 }; 948 };
945 class CPDF_DataAvail FX_FINAL : public CFX_Object, public IPDF_DataAvail
946 {
947 public:
948
949 CPDF_DataAvail(IFX_FileAvail* pFileAvail, IFX_FileRead* pFileRead);
950 ~CPDF_DataAvail();
951
952 virtual FX_BOOL IsDocAvail(IFX_DownloadHints* pHints) F X_OVERRIDE;
953
954 virtual void SetDocument(CPDF_Document* pDoc) FX_OVE RRIDE;
955
956 virtual FX_BOOL IsPageAvail(int iPage, IFX_DownloadHints * pHints) FX_OVERRIDE;
957
958 virtual FX_INT32 IsFormAvail(IFX_DownloadHints *pHints) FX_OVERRIDE;
959
960 virtual FX_INT32 IsLinearizedPDF() FX_OVERRIDE;
961
962 virtual FX_BOOL IsLinearized() FX_OVERRIDE
963 {
964 return m_bLinearized;
965 }
966
967 virtual void GetLinearizedMainXRefInfo(FX_FILESIZE *p Pos, FX_DWORD *pSize) FX_OVERRIDE;
968 IFX_FileRead* GetFileRead() const
969 {
970 return m_pFileRead;
971 }
972 IFX_FileAvail* GetFileAvail() const
973 {
974 return m_pFileAvail;
975 }
976 protected:
977 FX_DWORD GetObjectSize(FX_DWORD objnum, FX_FILESI ZE& offset);
978 FX_BOOL IsObjectsAvail(CFX_PtrArray& obj_array, FX_BOOL bParsePage, IFX_DownloadHints* pHints, CFX_PtrArray &ret_array);
979 FX_BOOL CheckDocStatus(IFX_DownloadHints *pHints );
980 FX_BOOL CheckHeader(IFX_DownloadHints* pHints);
981 FX_BOOL CheckFirstPage(IFX_DownloadHints *pHints );
982 FX_BOOL CheckEnd(IFX_DownloadHints *pHints);
983 FX_BOOL CheckCrossRef(IFX_DownloadHints* pHints) ;
984 FX_BOOL CheckCrossRefItem(IFX_DownloadHints *pHi nts);
985 FX_BOOL CheckTrailer(IFX_DownloadHints* pHints);
986 FX_BOOL CheckRoot(IFX_DownloadHints* pHints);
987 FX_BOOL CheckInfo(IFX_DownloadHints* pHints);
988 FX_BOOL CheckPages(IFX_DownloadHints* pHints);
989 FX_BOOL CheckPage(IFX_DownloadHints* pHints);
990 FX_BOOL CheckResources(IFX_DownloadHints* pHints );
991 FX_BOOL CheckAnnots(IFX_DownloadHints* pHints);
992 FX_BOOL CheckAcroForm(IFX_DownloadHints* pHints) ;
993 FX_BOOL CheckAcroFormSubObject(IFX_DownloadHints * pHints);
994 FX_BOOL CheckTrailerAppend(IFX_DownloadHints* pH ints);
995 FX_BOOL CheckPageStatus(IFX_DownloadHints* pHint s);
996 FX_BOOL CheckAllCrossRefStream(IFX_DownloadHints *pHints);
997
998 FX_DWORD CheckCrossRefStream(IFX_DownloadHints *p Hints, FX_FILESIZE &xref_offset);
999 FX_BOOL IsLinearizedFile(FX_LPBYTE pData, FX_DWO RD dwLen);
1000 void SetStartOffset(FX_FILESIZE dwOffset);
1001 FX_BOOL GetNextToken(CFX_ByteString &token);
1002 FX_BOOL GetNextChar(FX_BYTE &ch);
1003 CPDF_Object * ParseIndirectObjectAt(FX_FILESIZE pos, F X_DWORD objnum);
1004 CPDF_Object * GetObject(FX_DWORD objnum, IFX_DownloadH ints* pHints, FX_BOOL *pExistInFile);
1005 FX_BOOL GetPageKids(CPDF_Parser *pParser, CPDF_O bject *pPages);
1006 FX_BOOL PreparePageItem();
1007 FX_BOOL LoadPages(IFX_DownloadHints* pHints);
1008 FX_BOOL LoadAllXref(IFX_DownloadHints* pHints);
1009 FX_BOOL LoadAllFile(IFX_DownloadHints* pHints);
1010 FX_BOOL CheckLinearizedData(IFX_DownloadHints* p Hints);
1011 FX_BOOL CheckFileResources(IFX_DownloadHints* pH ints);
1012 FX_BOOL CheckPageAnnots(int iPage, IFX_DownloadH ints* pHints);
1013
1014 FX_BOOL CheckLinearizedFirstPage(int iPage, IFX_ DownloadHints* pHints);
1015 FX_BOOL HaveResourceAncestor(CPDF_Dictionary *pD ict);
1016 FX_BOOL CheckPage(FX_INT32 iPage, IFX_DownloadHi nts* pHints);
1017 FX_BOOL LoadDocPages(IFX_DownloadHints* pHints);
1018 FX_BOOL LoadDocPage(FX_INT32 iPage, IFX_Download Hints* pHints);
1019 FX_BOOL CheckPageNode(CPDF_PageNode &pageNodes, FX_INT32 iPage, FX_INT32 &iCount, IFX_DownloadHints* pHints);
1020 FX_BOOL CheckUnkownPageNode(FX_DWORD dwPageNo, C PDF_PageNode *pPageNode, IFX_DownloadHints* pHints);
1021 FX_BOOL CheckArrayPageNode(FX_DWORD dwPageNo, CP DF_PageNode *pPageNode, IFX_DownloadHints* pHints);
1022 FX_BOOL CheckPageCount(IFX_DownloadHints* pHints );
1023 FX_BOOL IsFirstCheck(int iPage);
1024 void ResetFirstCheck(int iPage);
1025
1026 CPDF_Parser m_parser;
1027
1028 CPDF_SyntaxParser m_syntaxParser;
1029
1030 CPDF_Object *m_pRoot;
1031
1032 FX_DWORD m_dwRootObjNum;
1033
1034 FX_DWORD m_dwInfoObjNum;
1035
1036 CPDF_Object *m_pLinearized;
1037
1038 CPDF_Object *m_pTrailer;
1039
1040 FX_BOOL m_bDocAvail;
1041
1042 FX_FILESIZE m_dwHeaderOffset;
1043
1044 FX_FILESIZE m_dwLastXRefOffset;
1045
1046 FX_FILESIZE m_dwXRefOffset;
1047
1048 FX_FILESIZE m_dwTrailerOffset;
1049
1050 FX_FILESIZE m_dwCurrentOffset;
1051
1052 PDF_DATAAVAIL_STATUS m_docStatus;
1053
1054 IFX_FileAvail* m_pFileAvail;
1055
1056 IFX_FileRead* m_pFileRead;
1057
1058 FX_FILESIZE m_dwFileLen;
1059
1060 CPDF_Document* m_pDocument;
1061
1062 CPDF_SortObjNumArray m_objnum_array;
1063
1064 CFX_PtrArray m_objs_array;
1065
1066 FX_FILESIZE m_Pos;
1067
1068 FX_FILESIZE m_bufferOffset;
1069
1070 FX_DWORD m_bufferSize;
1071
1072 CFX_ByteString m_WordBuf;
1073
1074 FX_BYTE m_WordBuffer[257];
1075
1076 FX_DWORD m_WordSize;
1077
1078 FX_BYTE m_bufferData[512];
1079
1080 CFX_FileSizeArray m_CrossOffset;
1081
1082 CFX_DWordArray m_XRefStreamList;
1083
1084 CFX_DWordArray m_PageObjList;
1085
1086 FX_DWORD m_PagesObjNum;
1087
1088 FX_BOOL m_bLinearized;
1089
1090 FX_DWORD m_dwFirstPageNo;
1091
1092 FX_BOOL m_bLinearedDataOK;
1093
1094 FX_BOOL m_bMainXRefLoadTried;
1095
1096 FX_BOOL m_bMainXRefLoadedOK;
1097
1098 FX_BOOL m_bPagesTreeLoad;
1099
1100 FX_BOOL m_bPagesLoad;
1101
1102 CPDF_Parser * m_pCurrentParser;
1103
1104 FX_FILESIZE m_dwCurrentXRefSteam;
1105
1106 FX_BOOL m_bAnnotsLoad;
1107
1108 FX_BOOL m_bHaveAcroForm;
1109
1110 FX_DWORD m_dwAcroFormObjNum;
1111
1112 FX_BOOL m_bAcroFormLoad;
1113
1114 CPDF_Object * m_pAcroForm;
1115
1116 CFX_PtrArray m_arrayAcroforms;
1117
1118 CPDF_Dictionary * m_pPageDict;
1119
1120 CPDF_Object * m_pPageResource;
1121
1122 FX_BOOL m_bNeedDownLoadResource;
1123
1124 FX_BOOL m_bPageLoadedOK;
1125
1126 FX_BOOL m_bLinearizedFormParamLoad;
1127
1128 CFX_PtrArray m_PagesArray;
1129
1130 FX_DWORD m_dwEncryptObjNum;
1131
1132 FX_FILESIZE m_dwPrevXRefOffset;
1133
1134 FX_BOOL m_bTotalLoadPageTree;
1135
1136 FX_BOOL m_bCurPageDictLoadOK;
1137
1138 CPDF_PageNode m_pageNodes;
1139
1140 CFX_CMapDWordToDWord * m_pageMapCheckState;
1141
1142 CFX_CMapDWordToDWord * m_pagesLoadState;
1143 };
1144 #endif 949 #endif
OLDNEW
« no previous file with comments | « no previous file | core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698