| 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 |