1e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved.
2e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Use of this source code is governed by a BSD-style license that can be
3e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// found in the LICENSE file.
4e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
5e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
7e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#ifndef PUBLIC_FPDF_DATAAVAIL_H_
8e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#define PUBLIC_FPDF_DATAAVAIL_H_
9e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include <stddef.h>
11e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// NOLINTNEXTLINE(build/include)
13e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#include "fpdfview.h"
14e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
15ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_LINEARIZATION_UNKNOWN -1
16ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_NOT_LINEARIZED 0
17ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_LINEARIZED 1
18e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
19ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_DATA_ERROR -1
20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_DATA_NOTAVAIL 0
21ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_DATA_AVAIL 1
22ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_FORM_ERROR -1
24ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_FORM_NOTAVAIL 0
25ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_FORM_AVAIL 1
26ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_FORM_NOTEXIST 2
27e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
28e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#ifdef __cplusplus
29e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovextern "C" {
304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif  // __cplusplus
31e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
324d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Interface for checking whether sections of the file are available.
33e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovtypedef struct _FX_FILEAVAIL {
344d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // Version number of the interface. Must be 1.
35ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  int version;
36ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // Reports if the specified data section is currently available. A section is
384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // available if all bytes in the section are available.
394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  //
404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // Interface Version: 1
414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // Implementation Required: Yes
424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  //
434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  //   pThis  - pointer to the interface structure.
444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  //   offset - the offset of the data section in the file.
454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  //   size   - the size of the data section.
464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  //
474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // Returns true if the specified data section at |offset| of |size|
484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // is available.
494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  FPDF_BOOL (*IsDataAvail)(struct _FX_FILEAVAIL* pThis,
504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                           size_t offset,
514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                           size_t size);
52e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov} FX_FILEAVAIL;
53e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovtypedef void* FPDF_AVAIL;
54e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
554d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Create a document availability provider.
564d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   file_avail - pointer to file availability interface.
584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   file       - pointer to a file access interface.
594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns a handle to the document availability provider, or NULL on error.
614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |FPDFAvail_Destroy| must be called when done with the availability provider.
63ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannDLLEXPORT FPDF_AVAIL STDCALL FPDFAvail_Create(FX_FILEAVAIL* file_avail,
64ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                              FPDF_FILEACCESS* file);
65e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Destroy the |avail| document availability provider.
674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   avail - handle to document availability provider to be destroyed.
69e6986e1e8d4a57987f47c215490cb080a65ee29aSvet GanovDLLEXPORT void STDCALL FPDFAvail_Destroy(FPDF_AVAIL avail);
70e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Download hints interface. Used to receive hints for further downloading.
72e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovtypedef struct _FX_DOWNLOADHINTS {
734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // Version number of the interface. Must be 1.
74ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  int version;
75ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // Add a section to be downloaded.
774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  //
784d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // Interface Version: 1
794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // Implementation Required: Yes
804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  //
814d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  //   pThis  - pointer to the interface structure.
824d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  //   offset - the offset of the hint reported to be downloaded.
834d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  //   size   - the size of the hint reported to be downloaded.
844d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  //
854d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // The |offset| and |size| of the section may not be unique. Part of the
864d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // section might be already available. The download manager must deal with
874d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // overlapping sections.
88ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  void (*AddSegment)(struct _FX_DOWNLOADHINTS* pThis,
89ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     size_t offset,
90ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     size_t size);
91e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov} FX_DOWNLOADHINTS;
92e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
934d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Checks if the document is ready for loading, if not, gets download hints.
944d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   avail - handle to document availability provider.
964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   hints - pointer to a download hints interface.
974d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
984d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns one of:
994d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_DATA_ERROR: A common error is returned. Data availability unknown.
1004d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_DATA_NOTAVAIL: Data not yet available.
1014d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_DATA_AVAIL: Data available.
1024d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1034d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Applications should call this function whenever new data arrives, and process
1044d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// all the generated download hints, if any, until the function returns
1054d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |PDF_DATA_ERROR| or |PDF_DATA_AVAIL|.
1064d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1074d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Once all data is available, call |FPDFAvail_GetDocument| to get a document
1084d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// handle.
109ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannDLLEXPORT int STDCALL
110ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFPDFAvail_IsDocAvail(FPDF_AVAIL avail, FX_DOWNLOADHINTS* hints);
111e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
1124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Get document from the availability provider.
1134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   avail    - handle to document availability provider.
1154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   password - password for decrypting the PDF file. Optional.
1164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns a handle to the document.
1184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// When |FPDFAvail_IsDocAvail| returns TRUE, call |FPDFAvail_GetDocument| to
1204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// retrieve the document handle.
121e6986e1e8d4a57987f47c215490cb080a65ee29aSvet GanovDLLEXPORT FPDF_DOCUMENT STDCALL FPDFAvail_GetDocument(FPDF_AVAIL avail,
122e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov                                                      FPDF_BYTESTRING password);
123e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
1244d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Get the page number for the first available page in a linearized PDF.
1254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1264d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   doc - document handle.
1274d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1284d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns the zero-based index for the first available page.
1294d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// For most linearized PDFs, the first available page will be the first page,
1314d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// however, some PDFs might make another page the first available page.
1324d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// For non-linearized PDFs, this function will always return zero.
133e6986e1e8d4a57987f47c215490cb080a65ee29aSvet GanovDLLEXPORT int STDCALL FPDFAvail_GetFirstPageNum(FPDF_DOCUMENT doc);
134e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
1354d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Check if |page_index| is ready for loading, if not, get the
1364d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |FX_DOWNLOADHINTS|.
1374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   avail      - handle to document availability provider.
1394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   page_index - index number of the page. Zero for the first page.
1404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   hints      - pointer to a download hints interface. Populated if
1414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//                |page_index| is not available.
1424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns one of:
1444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_DATA_ERROR: A common error is returned. Data availability unknown.
1454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_DATA_NOTAVAIL: Data not yet available.
1464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_DATA_AVAIL: Data available.
1474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// This function can be called only after |FPDFAvail_GetDocument| is called.
1494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Applications should call this function whenever new data arrives and process
1504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// all the generated download |hints|, if any, until this function returns
1514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |PDF_DATA_ERROR| or |PDF_DATA_AVAIL|. Applications can then perform page
1524d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// loading.
153ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannDLLEXPORT int STDCALL FPDFAvail_IsPageAvail(FPDF_AVAIL avail,
154ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                            int page_index,
155ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                            FX_DOWNLOADHINTS* hints);
156e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
1574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Check if form data is ready for initialization, if not, get the
1584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |FX_DOWNLOADHINTS|.
1594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   avail - handle to document availability provider.
1614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   hints - pointer to a download hints interface. Populated if form is not
1624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//           ready for initialization.
1634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1644d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns one of:
1654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_FORM_ERROR: A common eror, in general incorrect parameters.
1664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_FORM_NOTAVAIL: Data not available.
1674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_FORM_AVAIL: Data available.
1684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_FORM_NOTEXIST: No form data.
1694d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// This function can be called only after |FPDFAvail_GetDocument| is called.
1714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// The application should call this function whenever new data arrives and
1724d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// process all the generated download |hints|, if any, until the function
1734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |PDF_FORM_ERROR|, |PDF_FORM_AVAIL| or |PDF_FORM_NOTEXIST|.
1744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Applications can then perform page loading. It is recommend to call
1754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |FPDFDOC_InitFormFillEnvironment| when |PDF_FORM_AVAIL| is returned.
176ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannDLLEXPORT int STDCALL FPDFAvail_IsFormAvail(FPDF_AVAIL avail,
177ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                            FX_DOWNLOADHINTS* hints);
178e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
1794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Check whether a document is a linearized PDF.
1804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1814d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   avail - handle to document availability provider.
1824d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1834d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns one of:
1844d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_LINEARIZED
1854d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_NOT_LINEARIZED
1864d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//   PDF_LINEARIZATION_UNKNOWN
1874d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann//
1884d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |FPDFAvail_IsLinearized| will return |PDF_LINEARIZED| or |PDF_NOT_LINEARIZED|
1894d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// when we have 1k  of data. If the files size less than 1k, it returns
1904d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |PDF_LINEARIZATION_UNKNOWN| as there is insufficient information to determine
1914d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// if the PDF is linearlized.
192ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannDLLEXPORT int STDCALL FPDFAvail_IsLinearized(FPDF_AVAIL avail);
193e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
194e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#ifdef __cplusplus
1954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}  // extern "C"
1964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif  // __cplusplus
197e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
198e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#endif  // PUBLIC_FPDF_DATAAVAIL_H_
199