Chromium Code Reviews| Index: core/include/fpdfapi/ipdf_data_avail.h |
| diff --git a/core/include/fpdfapi/ipdf_data_avail.h b/core/include/fpdfapi/ipdf_data_avail.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..8da5bcf1a5596624e9832853d77d635318675285 |
| --- /dev/null |
| +++ b/core/include/fpdfapi/ipdf_data_avail.h |
| @@ -0,0 +1,80 @@ |
| +// Copyright 2016 PDFium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| + |
| +#ifndef CORE_INCLUDE_FPDFAPI_IPDF_DATA_AVAIL_H_ |
| +#define CORE_INCLUDE_FPDFAPI_IPDF_DATA_AVAIL_H_ |
| + |
| +#include "core/include/fxcrt/fx_stream.h" |
| +#include "core/include/fxcrt/fx_system.h" |
| + |
| +class CPDF_Document; |
| +class CPDF_Object; |
| + |
| +class IPDF_DataAvail { |
| + public: |
| + // Must match PDF_DATA_* definitions in public/fpdf_dataavail.h, but cannot |
| + // #include that header. fpdfsdk/src/fpdf_dataavail.cpp has static_asserts |
| + // to make sure the two sets of values match. |
| + enum DocAvailStatus { |
| + DataError = -1, // PDF_DATA_ERROR |
|
dsinclair
2016/03/10 14:15:25
nit: These comments and on the two enum's below ar
Tom Sepez
2016/03/10 17:19:26
The are literally the name of a #define somewhere.
|
| + DataNotAvailable = 0, // PDF_DATA_NOTAVAIL |
| + DataAvailable = 1, // PDF_DATA_AVAIL |
| + }; |
| + |
| + // Must match PDF_*LINEAR* definitions in public/fpdf_dataavail.h, but cannot |
| + // #include that header. fpdfsdk/src/fpdf_dataavail.cpp has static_asserts |
| + // to make sure the two sets of values match. |
| + enum DocLinearizationStatus { |
| + LinearizationUnknown = -1, // PDF_LINEARIZATION_UNKNOWN |
| + NotLinearized = 0, // PDF_NOT_LINEARIZED |
| + Linearized = 1, // PDF_LINEARIZED |
| + }; |
| + |
| + // Must match PDF_FORM_* definitions in public/fpdf_dataavail.h, but cannot |
| + // #include that header. fpdfsdk/src/fpdf_dataavail.cpp has static_asserts |
| + // to make sure the two sets of values match. |
| + enum DocFormStatus { |
| + FormError = -1, // PDF_FORM_ERROR |
| + FormNotAvailable = 0, // PDF_FORM_NOTAVAIL |
| + FormAvailable = 1, // PDF_FORM_AVAIL |
| + FormNotExist = 2, // PDF_FORM_NOTEXIST |
| + }; |
| + |
| + class FileAvail { |
| + public: |
| + virtual ~FileAvail() {} |
|
dsinclair
2016/03/10 14:15:25
nit: move virtual body to a .cpp (and below)
Tom Sepez
2016/03/10 17:19:25
Done.
|
| + virtual FX_BOOL IsDataAvail(FX_FILESIZE offset, FX_DWORD size) = 0; |
| + }; |
| + |
| + class DownloadHints { |
| + public: |
| + virtual ~DownloadHints() {} |
| + virtual void AddSegment(FX_FILESIZE offset, FX_DWORD size) = 0; |
| + }; |
| + |
| + static IPDF_DataAvail* Create(FileAvail* pFileAvail, IFX_FileRead* pFileRead); |
| + virtual ~IPDF_DataAvail() {} |
| + |
| + FileAvail* GetFileAvail() const { return m_pFileAvail; } |
| + IFX_FileRead* GetFileRead() const { return m_pFileRead; } |
| + |
| + virtual DocAvailStatus IsDocAvail(DownloadHints* pHints) = 0; |
| + virtual void SetDocument(CPDF_Document* pDoc) = 0; |
| + virtual DocAvailStatus IsPageAvail(int iPage, DownloadHints* pHints) = 0; |
| + virtual FX_BOOL IsLinearized() = 0; |
| + virtual DocFormStatus IsFormAvail(DownloadHints* pHints) = 0; |
| + virtual DocLinearizationStatus IsLinearizedPDF() = 0; |
| + virtual void GetLinearizedMainXRefInfo(FX_FILESIZE* pPos, |
| + FX_DWORD* pSize) = 0; |
| + |
| + protected: |
| + IPDF_DataAvail(FileAvail* pFileAvail, IFX_FileRead* pFileRead); |
| + |
| + FileAvail* m_pFileAvail; |
| + IFX_FileRead* m_pFileRead; |
| +}; |
| + |
| +#endif // CORE_INCLUDE_FPDFAPI_IPDF_DATA_AVAIL_H_ |