aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/qpdflogger-c.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-06-19 15:12:37 +0200
committerJay Berkenbilt <ejb@ql.org>2022-06-19 15:12:59 +0200
commit1eb2f208ecfffd44c934f7ff3fa42189c206541d (patch)
tree86778da7068ad3d005d8ac059cc71451cafffaf8 /libqpdf/qpdflogger-c.cc
parenteae75dbe448b0395aee7e49c2a9cca9f82680782 (diff)
downloadqpdf-1eb2f208ecfffd44c934f7ff3fa42189c206541d.tar.zst
Use Pl_Function in qpdflogger C API implementation
Diffstat (limited to 'libqpdf/qpdflogger-c.cc')
-rw-r--r--libqpdf/qpdflogger-c.cc45
1 files changed, 7 insertions, 38 deletions
diff --git a/libqpdf/qpdflogger-c.cc b/libqpdf/qpdflogger-c.cc
index 46fd9fba..4640c83b 100644
--- a/libqpdf/qpdflogger-c.cc
+++ b/libqpdf/qpdflogger-c.cc
@@ -1,6 +1,7 @@
#include <qpdf/qpdflogger-c.h>
#include <qpdf/Pipeline.hh>
+#include <qpdf/Pl_Function.hh>
#include <qpdf/QIntC.hh>
#include <qpdf/QPDFLogger.hh>
#include <functional>
@@ -14,43 +15,6 @@ struct _qpdflogger_handle
std::shared_ptr<QPDFLogger> l;
};
-namespace
-{
- class FunctionPipeline: public Pipeline
- {
- public:
- FunctionPipeline(char const* identifier, qpdf_log_fn_t fn, void* udata);
- virtual ~FunctionPipeline() = default;
-
- virtual void write(unsigned char const* buf, size_t len) override;
- virtual void finish() override;
-
- private:
- qpdf_log_fn_t fn;
- void* udata;
- };
-}; // namespace
-
-FunctionPipeline::FunctionPipeline(
- char const* identifier, qpdf_log_fn_t fn, void* udata) :
- Pipeline(identifier, nullptr),
- fn(fn),
- udata(udata)
-{
-}
-
-void
-FunctionPipeline::write(unsigned char const* buf, size_t len)
-{
- fn(reinterpret_cast<char const*>(buf), QIntC::to_ulong(len), udata);
-}
-
-void
-FunctionPipeline::finish()
-{
- // Nothing needed
-}
-
_qpdflogger_handle::_qpdflogger_handle(std::shared_ptr<QPDFLogger> l) :
l(l)
{
@@ -92,7 +56,12 @@ set_log_dest(
method(l->discard());
break;
case qpdf_log_dest_custom:
- method(std::make_shared<FunctionPipeline>(identifier, fn, udata));
+ method(std::make_shared<Pl_Function>(
+ identifier,
+ nullptr,
+ [fn, udata](unsigned char const* data, size_t len) {
+ fn(reinterpret_cast<char const*>(data), len, udata);
+ }));
break;
}
}