aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2022-02-05 21:08:58 +0100
committerJay Berkenbilt <jberkenbilt@users.noreply.github.com>2022-02-06 01:40:30 +0100
commit2ed5f49a795d91faddc723bbbb561e485094e23a (patch)
treeaed0ca855613ddb1129602e234790082856a4249 /libqpdf
parentb3bf02904a23d8f38d54d99ba5442faed63f23f7 (diff)
downloadqpdf-2ed5f49a795d91faddc723bbbb561e485094e23a.tar.zst
C-API expose QPDFObjectHandle::getValueAs... accessors
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/qpdf-c.cc130
1 files changed, 130 insertions, 0 deletions
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_BOOL>(
+ 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<long long>(
@@ -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_BOOL>(
+ 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<int>(
@@ -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_BOOL>(
+ 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<unsigned long long>(
@@ -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_BOOL>(
+ 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<unsigned int>(
@@ -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_BOOL>(
+ 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<char const*>(
@@ -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_BOOL>(
+ 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<double>(
@@ -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_BOOL>(
+ 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<char const*>(
@@ -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_BOOL>(
+ 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<char const*>(
@@ -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_BOOL>(
+ 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<char const*>(
@@ -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_BOOL>(
+ 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)
{