diff options
Diffstat (limited to 'public/cpp')
-rw-r--r-- | public/cpp/fpdf_scopers.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/public/cpp/fpdf_scopers.h b/public/cpp/fpdf_scopers.h new file mode 100644 index 0000000000..1898ac887d --- /dev/null +++ b/public/cpp/fpdf_scopers.h @@ -0,0 +1,54 @@ +// Copyright 2018 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. + +#ifndef PUBLIC_CPP_FPDF_SCOPERS_H_ +#define PUBLIC_CPP_FPDF_SCOPERS_H_ + +#include <memory> +#include <type_traits> + +#include "public/cpp/fpdf_deleters.h" +#include "public/fpdf_annot.h" +#include "public/fpdf_dataavail.h" +#include "public/fpdf_edit.h" +#include "public/fpdf_formfill.h" +#include "public/fpdf_structtree.h" +#include "public/fpdf_text.h" +#include "public/fpdfview.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 ScopedFPDFDocument = + std::unique_ptr<std::remove_pointer<FPDF_DOCUMENT>::type, + FPDFDocumentDeleter>; + +using ScopedFPDFFormHandle = + std::unique_ptr<std::remove_pointer<FPDF_FORMHANDLE>::type, + FPDFFormHandleDeleter>; + +using ScopedFPDFTextPage = + std::unique_ptr<std::remove_pointer<FPDF_TEXTPAGE>::type, + FPDFTextPageDeleter>; + +using ScopedFPDFPage = + std::unique_ptr<std::remove_pointer<FPDF_PAGE>::type, FPDFPageDeleter>; + +using ScopedFPDFStructTree = + std::unique_ptr<std::remove_pointer<FPDF_STRUCTTREE>::type, + FPDFStructTreeDeleter>; + +using ScopedFPDFFont = + std::unique_ptr<std::remove_pointer<FPDF_FONT>::type, FPDFFontDeleter>; + +#endif // PUBLIC_CPP_FPDF_SCOPERS_H_ |