aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2010-10-04 17:24:10 +0200
committerJay Berkenbilt <ejb@ql.org>2010-10-04 17:24:10 +0200
commitb36f62a326e10f2b1beb9f3791a7b607ea3f994a (patch)
tree28f65057ffcf035fe6365b2f7bddd817a442e9b6 /libqpdf
parentbcb10021d71005b240cf49eb9c5968037d16a371 (diff)
downloadqpdf-b36f62a326e10f2b1beb9f3791a7b607ea3f994a.tar.zst
add qpdf_read_memory to C API
git-svn-id: svn+q:///qpdf/trunk@1044 71b93d88-0707-0410-a8cf-f5a4172ac649
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/qpdf-c.cc27
1 files changed, 26 insertions, 1 deletions
diff --git a/libqpdf/qpdf-c.cc b/libqpdf/qpdf-c.cc
index d7776d21..10260753 100644
--- a/libqpdf/qpdf-c.cc
+++ b/libqpdf/qpdf-c.cc
@@ -28,7 +28,9 @@ struct _qpdf_data
std::string tmp_string;
// Parameters for functions we call
- char const* filename;
+ char const* filename; // or description
+ char const* buffer;
+ unsigned long size;
char const* password;
};
@@ -50,6 +52,13 @@ static void call_read(qpdf_data qpdf)
qpdf->qpdf->processFile(qpdf->filename, qpdf->password);
}
+// must set qpdf->filename, qpdf->buffer, qpdf->size, and qpdf->password
+static void call_read_memory(qpdf_data qpdf)
+{
+ qpdf->qpdf->processMemoryFile(qpdf->filename, qpdf->buffer,
+ qpdf->size, qpdf->password);
+}
+
// must set qpdf->filename
static void call_init_write(qpdf_data qpdf)
{
@@ -244,6 +253,22 @@ QPDF_ERROR_CODE qpdf_read(qpdf_data qpdf, char const* filename,
return status;
}
+QPDF_ERROR_CODE qpdf_read_memory(qpdf_data qpdf,
+ char const* description,
+ char const* buffer,
+ unsigned long size,
+ char const* password)
+{
+ QPDF_ERROR_CODE status = QPDF_SUCCESS;
+ qpdf->filename = description;
+ qpdf->buffer = buffer;
+ qpdf->size = size;
+ qpdf->password = password;
+ status = trap_errors(qpdf, &call_read_memory);
+ QTC::TC("qpdf", "qpdf-c called qpdf_read_memory", status);
+ return status;
+}
+
char const* qpdf_get_pdf_version(qpdf_data qpdf)
{
QTC::TC("qpdf", "qpdf-c called qpdf_get_pdf_version");