diff options
author | Jay Berkenbilt <ejb@ql.org> | 2010-10-04 17:24:10 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2010-10-04 17:24:10 +0200 |
commit | b36f62a326e10f2b1beb9f3791a7b607ea3f994a (patch) | |
tree | 28f65057ffcf035fe6365b2f7bddd817a442e9b6 /libqpdf | |
parent | bcb10021d71005b240cf49eb9c5968037d16a371 (diff) | |
download | qpdf-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.cc | 27 |
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"); |