| // Copyright 2018 The PDFium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef PUBLIC_CPP_FPDF_SCOPERS_H_ |
| #define PUBLIC_CPP_FPDF_SCOPERS_H_ |
| |
| #include <memory> |
| #include <type_traits> |
| |
| #include "public/cpp/fpdf_deleters.h" |
| |
| // Versions of FPDF types that clean up the object at scope exit. |
| |
| using ScopedFPDFAnnotation = |
| std::unique_ptr<std::remove_pointer<FPDF_ANNOTATION>::type, |
| FPDFAnnotationDeleter>; |
| |
| using ScopedFPDFAvail = |
| std::unique_ptr<std::remove_pointer<FPDF_AVAIL>::type, FPDFAvailDeleter>; |
| |
| using ScopedFPDFBitmap = |
| std::unique_ptr<std::remove_pointer<FPDF_BITMAP>::type, FPDFBitmapDeleter>; |
| |
| using ScopedFPDFClipPath = |
| std::unique_ptr<std::remove_pointer<FPDF_CLIPPATH>::type, |
| FPDFClipPathDeleter>; |
| |
| using ScopedFPDFDocument = |
| std::unique_ptr<std::remove_pointer<FPDF_DOCUMENT>::type, |
| FPDFDocumentDeleter>; |
| |
| using ScopedFPDFFont = |
| std::unique_ptr<std::remove_pointer<FPDF_FONT>::type, FPDFFontDeleter>; |
| |
| using ScopedFPDFFormHandle = |
| std::unique_ptr<std::remove_pointer<FPDF_FORMHANDLE>::type, |
| FPDFFormHandleDeleter>; |
| |
| using ScopedFPDFJavaScriptAction = |
| std::unique_ptr<std::remove_pointer<FPDF_JAVASCRIPT_ACTION>::type, |
| FPDFJavaScriptActionDeleter>; |
| |
| using ScopedFPDFPage = |
| std::unique_ptr<std::remove_pointer<FPDF_PAGE>::type, FPDFPageDeleter>; |
| |
| using ScopedFPDFPageLink = |
| std::unique_ptr<std::remove_pointer<FPDF_PAGELINK>::type, |
| FPDFPageLinkDeleter>; |
| |
| using ScopedFPDFPageObject = |
| std::unique_ptr<std::remove_pointer<FPDF_PAGEOBJECT>::type, |
| FPDFPageObjectDeleter>; |
| |
| using ScopedFPDFStructTree = |
| std::unique_ptr<std::remove_pointer<FPDF_STRUCTTREE>::type, |
| FPDFStructTreeDeleter>; |
| |
| using ScopedFPDFTextFind = |
| std::unique_ptr<std::remove_pointer<FPDF_SCHHANDLE>::type, |
| FPDFTextFindDeleter>; |
| |
| using ScopedFPDFTextPage = |
| std::unique_ptr<std::remove_pointer<FPDF_TEXTPAGE>::type, |
| FPDFTextPageDeleter>; |
| |
| #endif // PUBLIC_CPP_FPDF_SCOPERS_H_ |