OLD | NEW |
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 #include "public/fpdf_dataavail.h" | 7 #include "public/fpdf_dataavail.h" |
8 | 8 |
9 #include "core/include/fpdfapi/cpdf_document.h" | 9 #include "core/include/fpdfapi/cpdf_document.h" |
| 10 #include "core/include/fpdfapi/ipdf_data_avail.h" |
10 #include "fpdfsdk/include/fsdk_define.h" | 11 #include "fpdfsdk/include/fsdk_define.h" |
11 #include "public/fpdf_formfill.h" | 12 #include "public/fpdf_formfill.h" |
12 | 13 |
13 // These checks are here because core/ and public/ cannot depend on each other. | 14 // These checks are here because core/ and public/ cannot depend on each other. |
14 static_assert(IPDF_DataAvail::DataError == PDF_DATA_ERROR, | 15 static_assert(IPDF_DataAvail::DataError == PDF_DATA_ERROR, |
15 "IPDF_DataAvail::DataError value mismatch"); | 16 "IPDF_DataAvail::DataError value mismatch"); |
16 static_assert(IPDF_DataAvail::DataNotAvailable == PDF_DATA_NOTAVAIL, | 17 static_assert(IPDF_DataAvail::DataNotAvailable == PDF_DATA_NOTAVAIL, |
17 "IPDF_DataAvail::DataNotAvailable value mismatch"); | 18 "IPDF_DataAvail::DataNotAvailable value mismatch"); |
18 static_assert(IPDF_DataAvail::DataAvailable == PDF_DATA_AVAIL, | 19 static_assert(IPDF_DataAvail::DataAvailable == PDF_DATA_AVAIL, |
19 "IPDF_DataAvail::DataAvailable value mismatch"); | 20 "IPDF_DataAvail::DataAvailable value mismatch"); |
20 | 21 |
21 static_assert(IPDF_DataAvail::LinearizationUnknown == PDF_LINEARIZATION_UNKNOWN, | 22 static_assert(IPDF_DataAvail::LinearizationUnknown == PDF_LINEARIZATION_UNKNOWN, |
22 "IPDF_DataAvail::LinearizationUnknown value mismatch"); | 23 "IPDF_DataAvail::LinearizationUnknown value mismatch"); |
23 static_assert(IPDF_DataAvail::NotLinearized == PDF_NOT_LINEARIZED, | 24 static_assert(IPDF_DataAvail::NotLinearized == PDF_NOT_LINEARIZED, |
24 "IPDF_DataAvail::NotLinearized value mismatch"); | 25 "IPDF_DataAvail::NotLinearized value mismatch"); |
25 static_assert(IPDF_DataAvail::Linearized == PDF_LINEARIZED, | 26 static_assert(IPDF_DataAvail::Linearized == PDF_LINEARIZED, |
26 "IPDF_DataAvail::Linearized value mismatch"); | 27 "IPDF_DataAvail::Linearized value mismatch"); |
27 | 28 |
28 static_assert(IPDF_DataAvail::FormError == PDF_FORM_ERROR, | 29 static_assert(IPDF_DataAvail::FormError == PDF_FORM_ERROR, |
29 "IPDF_DataAvail::FormError value mismatch"); | 30 "IPDF_DataAvail::FormError value mismatch"); |
30 static_assert(IPDF_DataAvail::FormNotAvailable == PDF_FORM_NOTAVAIL, | 31 static_assert(IPDF_DataAvail::FormNotAvailable == PDF_FORM_NOTAVAIL, |
31 "IPDF_DataAvail::FormNotAvailable value mismatch"); | 32 "IPDF_DataAvail::FormNotAvailable value mismatch"); |
32 static_assert(IPDF_DataAvail::FormAvailable == PDF_FORM_AVAIL, | 33 static_assert(IPDF_DataAvail::FormAvailable == PDF_FORM_AVAIL, |
33 "IPDF_DataAvail::FormAvailable value mismatch"); | 34 "IPDF_DataAvail::FormAvailable value mismatch"); |
34 static_assert(IPDF_DataAvail::FormNotExist == PDF_FORM_NOTEXIST, | 35 static_assert(IPDF_DataAvail::FormNotExist == PDF_FORM_NOTEXIST, |
35 "IPDF_DataAvail::FormNotExist value mismatch"); | 36 "IPDF_DataAvail::FormNotExist value mismatch"); |
36 | 37 |
37 class CFPDF_FileAvailWrap : public IFX_FileAvail { | 38 class CFPDF_FileAvailWrap : public IPDF_DataAvail::FileAvail { |
38 public: | 39 public: |
39 CFPDF_FileAvailWrap() { m_pfileAvail = NULL; } | 40 CFPDF_FileAvailWrap() { m_pfileAvail = NULL; } |
40 ~CFPDF_FileAvailWrap() override {} | 41 ~CFPDF_FileAvailWrap() override {} |
41 | 42 |
42 void Set(FX_FILEAVAIL* pfileAvail) { m_pfileAvail = pfileAvail; } | 43 void Set(FX_FILEAVAIL* pfileAvail) { m_pfileAvail = pfileAvail; } |
43 | 44 |
44 // IFX_FileAvail | 45 // IPDF_DataAvail::FileAvail: |
45 FX_BOOL IsDataAvail(FX_FILESIZE offset, FX_DWORD size) override { | 46 FX_BOOL IsDataAvail(FX_FILESIZE offset, FX_DWORD size) override { |
46 return m_pfileAvail->IsDataAvail(m_pfileAvail, offset, size); | 47 return m_pfileAvail->IsDataAvail(m_pfileAvail, offset, size); |
47 } | 48 } |
48 | 49 |
49 private: | 50 private: |
50 FX_FILEAVAIL* m_pfileAvail; | 51 FX_FILEAVAIL* m_pfileAvail; |
51 }; | 52 }; |
52 | 53 |
53 class CFPDF_FileAccessWrap : public IFX_FileRead { | 54 class CFPDF_FileAccessWrap : public IFX_FileRead { |
54 public: | 55 public: |
55 CFPDF_FileAccessWrap() { m_pFileAccess = NULL; } | 56 CFPDF_FileAccessWrap() { m_pFileAccess = NULL; } |
56 ~CFPDF_FileAccessWrap() override {} | 57 ~CFPDF_FileAccessWrap() override {} |
57 | 58 |
58 void Set(FPDF_FILEACCESS* pFile) { m_pFileAccess = pFile; } | 59 void Set(FPDF_FILEACCESS* pFile) { m_pFileAccess = pFile; } |
59 | 60 |
60 // IFX_FileRead | 61 // IFX_FileRead |
61 FX_FILESIZE GetSize() override { return m_pFileAccess->m_FileLen; } | 62 FX_FILESIZE GetSize() override { return m_pFileAccess->m_FileLen; } |
62 | 63 |
63 FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { | 64 FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { |
64 return m_pFileAccess->m_GetBlock(m_pFileAccess->m_Param, offset, | 65 return m_pFileAccess->m_GetBlock(m_pFileAccess->m_Param, offset, |
65 (uint8_t*)buffer, size); | 66 (uint8_t*)buffer, size); |
66 } | 67 } |
67 | 68 |
68 void Release() override {} | 69 void Release() override {} |
69 | 70 |
70 private: | 71 private: |
71 FPDF_FILEACCESS* m_pFileAccess; | 72 FPDF_FILEACCESS* m_pFileAccess; |
72 }; | 73 }; |
73 | 74 |
74 class CFPDF_DownloadHintsWrap : public IFX_DownloadHints { | 75 class CFPDF_DownloadHintsWrap : public IPDF_DataAvail::DownloadHints { |
75 public: | 76 public: |
76 explicit CFPDF_DownloadHintsWrap(FX_DOWNLOADHINTS* pDownloadHints) { | 77 explicit CFPDF_DownloadHintsWrap(FX_DOWNLOADHINTS* pDownloadHints) { |
77 m_pDownloadHints = pDownloadHints; | 78 m_pDownloadHints = pDownloadHints; |
78 } | 79 } |
79 ~CFPDF_DownloadHintsWrap() override {} | 80 ~CFPDF_DownloadHintsWrap() override {} |
80 | 81 |
81 public: | 82 public: |
82 // IFX_DownloadHints | 83 // IFX_DownloadHints |
83 void AddSegment(FX_FILESIZE offset, FX_DWORD size) override { | 84 void AddSegment(FX_FILESIZE offset, FX_DWORD size) override { |
84 m_pDownloadHints->AddSegment(m_pDownloadHints, offset, size); | 85 m_pDownloadHints->AddSegment(m_pDownloadHints, offset, size); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 return PDF_FORM_ERROR; | 163 return PDF_FORM_ERROR; |
163 CFPDF_DownloadHintsWrap hints_wrap(hints); | 164 CFPDF_DownloadHintsWrap hints_wrap(hints); |
164 return ((CFPDF_DataAvail*)avail)->m_pDataAvail->IsFormAvail(&hints_wrap); | 165 return ((CFPDF_DataAvail*)avail)->m_pDataAvail->IsFormAvail(&hints_wrap); |
165 } | 166 } |
166 | 167 |
167 DLLEXPORT int STDCALL FPDFAvail_IsLinearized(FPDF_AVAIL avail) { | 168 DLLEXPORT int STDCALL FPDFAvail_IsLinearized(FPDF_AVAIL avail) { |
168 if (!avail) | 169 if (!avail) |
169 return PDF_LINEARIZATION_UNKNOWN; | 170 return PDF_LINEARIZATION_UNKNOWN; |
170 return ((CFPDF_DataAvail*)avail)->m_pDataAvail->IsLinearizedPDF(); | 171 return ((CFPDF_DataAvail*)avail)->m_pDataAvail->IsLinearizedPDF(); |
171 } | 172 } |
OLD | NEW |