From 2ed5f49a795d91faddc723bbbb561e485094e23a Mon Sep 17 00:00:00 2001 From: m-holger Date: Sat, 5 Feb 2022 20:08:58 +0000 Subject: C-API expose QPDFObjectHandle::getValueAs... accessors --- libqpdf/qpdf-c.cc | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) (limited to 'libqpdf') diff --git a/libqpdf/qpdf-c.cc b/libqpdf/qpdf-c.cc index 8ca8fb42..ac728e8b 100644 --- a/libqpdf/qpdf-c.cc +++ b/libqpdf/qpdf-c.cc @@ -1238,6 +1238,22 @@ QPDF_BOOL qpdf_oh_get_bool_value(qpdf_data qpdf, qpdf_oh oh) }); } +QPDF_BOOL qpdf_oh_get_value_as_bool( + qpdf_data qpdf, qpdf_oh oh, QPDF_BOOL* value) +{ + return do_with_oh( + qpdf, oh, return_false, [value](QPDFObjectHandle& o) { + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_bool"); + bool v = *value; + QPDF_BOOL result = o.getValueAsBool(v); + if (result) + { + *value = v; + } + return result; + }); +} + long long qpdf_oh_get_int_value(qpdf_data qpdf, qpdf_oh oh) { return do_with_oh( @@ -1247,6 +1263,16 @@ long long qpdf_oh_get_int_value(qpdf_data qpdf, qpdf_oh oh) }); } +QPDF_BOOL qpdf_oh_get_value_as_longlong( + qpdf_data qpdf, qpdf_oh oh, long long* value) +{ + return do_with_oh( + qpdf, oh, return_false, [value](QPDFObjectHandle& o) { + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_longlong"); + return o.getValueAsInt(*value); + }); +} + int qpdf_oh_get_int_value_as_int(qpdf_data qpdf, qpdf_oh oh) { return do_with_oh( @@ -1256,6 +1282,16 @@ int qpdf_oh_get_int_value_as_int(qpdf_data qpdf, qpdf_oh oh) }); } +QPDF_BOOL qpdf_oh_get_value_as_int( + qpdf_data qpdf, qpdf_oh oh, int* value) +{ + return do_with_oh( + qpdf, oh, return_false, [value](QPDFObjectHandle& o) { + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_int"); + return o.getValueAsInt(*value); + }); +} + unsigned long long qpdf_oh_get_uint_value(qpdf_data qpdf, qpdf_oh oh) { return do_with_oh( @@ -1265,6 +1301,16 @@ unsigned long long qpdf_oh_get_uint_value(qpdf_data qpdf, qpdf_oh oh) }); } +QPDF_BOOL qpdf_oh_get_value_as_ulonglong( + qpdf_data qpdf, qpdf_oh oh, unsigned long long* value) +{ + return do_with_oh( + qpdf, oh, return_false, [value](QPDFObjectHandle& o) { + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_ulonglong"); + return o.getValueAsUInt(*value); + }); +} + unsigned int qpdf_oh_get_uint_value_as_uint(qpdf_data qpdf, qpdf_oh oh) { return do_with_oh( @@ -1274,6 +1320,16 @@ unsigned int qpdf_oh_get_uint_value_as_uint(qpdf_data qpdf, qpdf_oh oh) }); } +QPDF_BOOL qpdf_oh_get_value_as_uint( + qpdf_data qpdf, qpdf_oh oh, unsigned int* value) +{ + return do_with_oh( + qpdf, oh, return_false, [value](QPDFObjectHandle& o) { + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_uint"); + return o.getValueAsUInt(*value); + }); +} + char const* qpdf_oh_get_real_value(qpdf_data qpdf, qpdf_oh oh) { return do_with_oh( @@ -1284,6 +1340,22 @@ char const* qpdf_oh_get_real_value(qpdf_data qpdf, qpdf_oh oh) }); } +QPDF_BOOL qpdf_oh_get_value_as_real( + qpdf_data qpdf, qpdf_oh oh, char const** value, size_t* length) +{ + return do_with_oh( + qpdf, oh, return_false, [qpdf, value, length](QPDFObjectHandle& o) { + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_real"); + auto result = o.getValueAsReal(qpdf->tmp_string); + if (result) + { + *value = qpdf->tmp_string.c_str(); + *length = qpdf->tmp_string.length(); + } + return result; + }); +} + double qpdf_oh_get_numeric_value(qpdf_data qpdf, qpdf_oh oh) { return do_with_oh( @@ -1293,6 +1365,16 @@ double qpdf_oh_get_numeric_value(qpdf_data qpdf, qpdf_oh oh) }); } +QPDF_BOOL qpdf_oh_get_value_as_number( + qpdf_data qpdf, qpdf_oh oh, double* value) +{ + return do_with_oh( + qpdf, oh, return_false, [value](QPDFObjectHandle& o) { + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_number"); + return o.getValueAsNumber(*value); + }); +} + char const* qpdf_oh_get_name(qpdf_data qpdf, qpdf_oh oh) { return do_with_oh( @@ -1303,6 +1385,22 @@ char const* qpdf_oh_get_name(qpdf_data qpdf, qpdf_oh oh) }); } +QPDF_BOOL qpdf_oh_get_value_as_name( + qpdf_data qpdf, qpdf_oh oh, char const** value, size_t* length) +{ + return do_with_oh( + qpdf, oh, return_false, [qpdf, value, length](QPDFObjectHandle& o) { + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_name"); + auto result = o.getValueAsName(qpdf->tmp_string); + if (result) + { + *value = qpdf->tmp_string.c_str(); + *length = qpdf->tmp_string.length(); + } + return result; + }); +} + char const* qpdf_oh_get_string_value(qpdf_data qpdf, qpdf_oh oh) { return do_with_oh( @@ -1313,6 +1411,22 @@ char const* qpdf_oh_get_string_value(qpdf_data qpdf, qpdf_oh oh) }); } +QPDF_BOOL qpdf_oh_get_value_as_string( + qpdf_data qpdf, qpdf_oh oh, char const** value, size_t* length) +{ + return do_with_oh( + qpdf, oh, return_false, [qpdf, value, length](QPDFObjectHandle& o) { + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_string"); + auto result = o.getValueAsString(qpdf->tmp_string); + if (result) + { + *value = qpdf->tmp_string.c_str(); + *length = qpdf->tmp_string.length(); + } + return result; + }); +} + char const* qpdf_oh_get_utf8_value(qpdf_data qpdf, qpdf_oh oh) { return do_with_oh( @@ -1323,6 +1437,22 @@ char const* qpdf_oh_get_utf8_value(qpdf_data qpdf, qpdf_oh oh) }); } +QPDF_BOOL qpdf_oh_get_value_as_utf8( + qpdf_data qpdf, qpdf_oh oh, char const** value, size_t* length) +{ + return do_with_oh( + qpdf, oh, return_false, [qpdf, value, length](QPDFObjectHandle& o) { + QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_value_as_utf8"); + auto result = o.getValueAsUTF8(qpdf->tmp_string); + if (result) + { + *value = qpdf->tmp_string.c_str(); + *length = qpdf->tmp_string.length(); + } + return result; + }); +} + char const* qpdf_oh_get_binary_string_value( qpdf_data qpdf, qpdf_oh oh, size_t* length) { -- cgit v1.2.3-54-g00ecf