summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2021-02-16 21:07:53 +0100
committerMiklos Vajna <vmiklos@collabora.com>2021-02-17 09:10:05 +0100
commitdba40f311bc512c05ea59fbdfeb794ef44af72a6 (patch)
tree68544d7b1714b359782bc493752227324f343d90
parent2f9a61e3c92932569f8bffbd254a4a71f3354440 (diff)
pdfium: eliminate FPDF_SIGNATURE from public header
Change-Id: I9c8297c69ca359d861c8506e41c069692331eb8f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111005 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r--include/vcl/filter/PDFiumLibrary.hxx23
-rw-r--r--vcl/source/pdf/PDFiumLibrary.cxx34
2 files changed, 35 insertions, 22 deletions
diff --git a/include/vcl/filter/PDFiumLibrary.hxx b/include/vcl/filter/PDFiumLibrary.hxx
index 8a3e05b5b2d2..1c60e52d5f09 100644
--- a/include/vcl/filter/PDFiumLibrary.hxx
+++ b/include/vcl/filter/PDFiumLibrary.hxx
@@ -222,22 +222,17 @@ public:
};
/// Represents one digital signature, as exposed by PDFium.
-class VCL_DLLPUBLIC PDFiumSignature final
+class VCL_DLLPUBLIC PDFiumSignature
{
-private:
- FPDF_SIGNATURE mpSignature;
- PDFiumSignature(const PDFiumSignature&) = delete;
- PDFiumSignature& operator=(const PDFiumSignature&) = delete;
-
public:
- PDFiumSignature(FPDF_SIGNATURE pSignature);
-
- std::vector<int> getByteRange();
- int getDocMDPPermission();
- std::vector<unsigned char> getContents();
- OString getSubFilter();
- OUString getReason();
- css::util::DateTime getTime();
+ virtual ~PDFiumSignature() = default;
+
+ virtual std::vector<int> getByteRange() = 0;
+ virtual int getDocMDPPermission() = 0;
+ virtual std::vector<unsigned char> getContents() = 0;
+ virtual OString getSubFilter() = 0;
+ virtual OUString getReason() = 0;
+ virtual css::util::DateTime getTime() = 0;
};
class VCL_DLLPUBLIC PDFiumDocument final
diff --git a/vcl/source/pdf/PDFiumLibrary.cxx b/vcl/source/pdf/PDFiumLibrary.cxx
index 29d5bb8f3ba6..d183cd6f22c3 100644
--- a/vcl/source/pdf/PDFiumLibrary.cxx
+++ b/vcl/source/pdf/PDFiumLibrary.cxx
@@ -306,6 +306,24 @@ public:
/// Returned rect is no longer upside down and is in mm100.
basegfx::B2DRectangle getCharBox(int nIndex, double fPageHeight) override;
};
+
+class PDFiumSignatureImpl final : public PDFiumSignature
+{
+private:
+ FPDF_SIGNATURE mpSignature;
+ PDFiumSignatureImpl(const PDFiumSignatureImpl&) = delete;
+ PDFiumSignatureImpl& operator=(const PDFiumSignatureImpl&) = delete;
+
+public:
+ PDFiumSignatureImpl(FPDF_SIGNATURE pSignature);
+
+ std::vector<int> getByteRange() override;
+ int getDocMDPPermission() override;
+ std::vector<unsigned char> getContents() override;
+ OString getSubFilter() override;
+ OUString getReason() override;
+ css::util::DateTime getTime() override;
+};
}
OUString convertPdfDateToISO8601(OUString const& rInput)
@@ -438,12 +456,12 @@ std::unique_ptr<PDFiumBitmap> PDFium::createBitmap(int nWidth, int nHeight, int
return pPDFiumBitmap;
}
-PDFiumSignature::PDFiumSignature(FPDF_SIGNATURE pSignature)
+PDFiumSignatureImpl::PDFiumSignatureImpl(FPDF_SIGNATURE pSignature)
: mpSignature(pSignature)
{
}
-std::vector<int> PDFiumSignature::getByteRange()
+std::vector<int> PDFiumSignatureImpl::getByteRange()
{
int nByteRangeLen = FPDFSignatureObj_GetByteRange(mpSignature, nullptr, 0);
std::vector<int> aByteRange(nByteRangeLen);
@@ -456,12 +474,12 @@ std::vector<int> PDFiumSignature::getByteRange()
return aByteRange;
}
-int PDFiumSignature::getDocMDPPermission()
+int PDFiumSignatureImpl::getDocMDPPermission()
{
return FPDFSignatureObj_GetDocMDPPermission(mpSignature);
}
-std::vector<unsigned char> PDFiumSignature::getContents()
+std::vector<unsigned char> PDFiumSignatureImpl::getContents()
{
int nContentsLen = FPDFSignatureObj_GetContents(mpSignature, nullptr, 0);
std::vector<unsigned char> aContents(nContentsLen);
@@ -474,7 +492,7 @@ std::vector<unsigned char> PDFiumSignature::getContents()
return aContents;
}
-OString PDFiumSignature::getSubFilter()
+OString PDFiumSignatureImpl::getSubFilter()
{
int nSubFilterLen = FPDFSignatureObj_GetSubFilter(mpSignature, nullptr, 0);
std::vector<char> aSubFilterBuf(nSubFilterLen);
@@ -484,7 +502,7 @@ OString PDFiumSignature::getSubFilter()
return aSubFilter;
}
-OUString PDFiumSignature::getReason()
+OUString PDFiumSignatureImpl::getReason()
{
int nReasonLen = FPDFSignatureObj_GetReason(mpSignature, nullptr, 0);
OUString aRet;
@@ -498,7 +516,7 @@ OUString PDFiumSignature::getReason()
return aRet;
}
-util::DateTime PDFiumSignature::getTime()
+util::DateTime PDFiumSignatureImpl::getTime()
{
util::DateTime aRet;
int nTimeLen = FPDFSignatureObj_GetTime(mpSignature, nullptr, 0);
@@ -551,7 +569,7 @@ std::unique_ptr<PDFiumSignature> PDFiumDocument::getSignature(int nIndex)
FPDF_SIGNATURE pSignature = FPDF_GetSignatureObject(mpPdfDocument, nIndex);
if (pSignature)
{
- pPDFiumSignature = std::make_unique<PDFiumSignature>(pSignature);
+ pPDFiumSignature = std::make_unique<PDFiumSignatureImpl>(pSignature);
}
return pPDFiumSignature;
}