aboutsummaryrefslogtreecommitdiffstats
path: root/include/qpdf/QPDF.hh
AgeCommit message (Collapse)Author
2022-09-13Improve efficiency of ResolveRecorderJay Berkenbilt
Removing an element from a set with iterator is constant time, and std::set specifies that other operations on the set do not invalidate existing iterators.
2022-09-13Fix up a few commentsJay Berkenbilt
2022-09-08Rename QPDFValueProxy back to QPDFObjectJay Berkenbilt
QPDFValueProxy wasn't a good name for it. We decided the evil of having the header file be named QPDFObject_private.hh was less than the evil of having the class be named something other than what it should have been named.
2022-09-06Rename QPDFObject -> QPDFValueProxyJay Berkenbilt
This is in preparation for restoring a QPDFObject.hh to ease the transition on qpdf_object_type_e. This commit was created by * Renaming QPDFObject.cc and QPDFObject.hh * Replacing QPDFObject\b with QPDFValueProxy (where \b is word boundary) * Running format-code * Manually resorting files in libqpdf/CMakeLists.txt * Manually refilling the comment in QPDF.hh near class Resolver
2022-09-02Disable copying/assigning to QPDF objects, add QPDF::create()Jay Berkenbilt
2022-09-02Fix outdated commentJay Berkenbilt
2022-09-01Merge pull request #730 from m-holger/allpagesJay Berkenbilt
Tidy QPDF::getAllPagesInternal and QPDF::pushInheritedAttributesToPageInternal
2022-09-01Add method QPDFObject::resolvem-holger
2022-09-01Change return type of QPDF::resolve to voidm-holger
2022-09-01Add private method QPDF::ObjCache::updatem-holger
Add a new obj_cache entry or update an existing entry in place.
2022-09-01Add private methods QPDF::isCached and QPDF::isUnresolvedm-holger
2022-09-01Remove QPDF::ObjectChangedm-holger
Also change QPDF::replaceObject and QPDF::swapObjects such that the QPDFObject assigned to an og in the obj_cache is never replaced; only QPDFObject::value is updated.
2022-08-31Modify newIndirect to set QPDFObjectHandle::objm-holger
2022-08-30Move QPDFObjectHandle::parseInternal to new class QPDFParserm-holger
Part of #729
2022-08-06Add comment clarifying getObject vs othersJay Berkenbilt
2022-08-01Add QPDF::getObject to replace getObjectByObjGen and getObjectByIDm-holger
For consistency with similar methods, e.g. replaceObject.
2022-08-01Tidy QPDF::pushInheritedAttributesToPageInternalm-holger
Remove unnecessary parameters. Remove code that is unnecessary as result of a prior call to QPDF::getAllPages. Avoid clearing and rebuilding of m->all_pages.
2022-08-01Remove redundant parameter from QPDF::getAllPagesInternalm-holger
2022-07-31Provide a simpler QPDF::writeJSONJay Berkenbilt
2022-07-31Simplify --json-outputJay Berkenbilt
Now --json-output just changes defaults. Allow output file with --json.
2022-07-31Change the output of --json to use "qpdf" instead of "objects"Jay Berkenbilt
2022-07-31Change --json-output formatJay Berkenbilt
from "qpdf-v2" to "qpdf": [..., ...]
2022-07-31Update docs and prepare QPDF::writeJSON for changesJay Berkenbilt
Add additional parameters that will be needed to call QPDF::writeJSON in partial mode.
2022-07-24Overload StreamDataProvider::provideStreamDatam-holger
Use 'QPDFObjGen const&' instead of 'int, int' in signature.
2022-07-24QPDFObjGen : tidy QPDF private methodsm-holger
Change method signatures to use QPDFObjGen. Use QPDFObjGen methods where possible. Remove redundant QPDF::objGenToIndirect.
2022-07-24QPPFObjGen : tidy QPDF::readObjectAtOffsetm-holger
Change method signature to use QPDFObjGen.
2022-06-25Track whether certain page modifying methods have been calledJay Berkenbilt
We need to know whether pushInheritedAttributesToPage or getAllPages have been called when generating JSON output. When reading the JSON back in, we have to call the same methods so that object numbers will line up properly.
2022-06-18QPDF, QPDFJob: use QPDFLogger instead of custom output streamsJay Berkenbilt
2022-05-31Update documentation for qpdf JSON v2Jay Berkenbilt
2022-05-21Format codeJay Berkenbilt
2022-05-21JSON: Fix large file supportJay Berkenbilt
2022-05-21Replace std::regex with validators for better performanceJay Berkenbilt
2022-05-20Exercise object description in testsJay Berkenbilt
2022-05-20Test --update-from-jsonJay Berkenbilt
2022-05-20Major rework -- see long commentsJay Berkenbilt
* Replace --create-from-json=file with --json-input, which causes the regular input to be treated as json. * Eliminate --to-json * In --json=2, bring back "objects" and eliminate "objectinfo". Stream data is never present. * In --json-output=2, write "qpdf-v2" with "objects" and include stream data.
2022-05-20Support stream data -- not testedJay Berkenbilt
There are no automated tests yet, but committing work so far in preparation for some refactoring.
2022-05-20Parse objects; stream data is not yet handledJay Berkenbilt
2022-05-20Add private methods for reserving specific objectsJay Berkenbilt
2022-05-16Implement top-level qpdf json parsingJay Berkenbilt
2022-05-16Add scaffolding for QPDF JSON reactorJay Berkenbilt
2022-05-16Add --create-from-json and --update-from-json argumentsJay Berkenbilt
Also add stubs for top-level QPDF methods (createFromJSON, updateFromJSON)
2022-04-24Add new QPDF::warn that takes most of QPDFExc's argumentsJay Berkenbilt
2022-04-16Use = default and = delete where possible in classesJay Berkenbilt
2022-04-16Make ABI-breaking changes that don't modify API at allJay Berkenbilt
* Merge overloaded functions by adding default values * Remove non-const methods that are identical to const methods
2022-04-09Replace PointerHolder with std::shared_ptr in library sources onlyJay Berkenbilt
(patrepl and cleanpatch are my own utilities) patrepl s/PointerHolder/std::shared_ptr/g {include,libqpdf}/qpdf/*.hh patrepl s/PointerHolder/std::shared_ptr/g libqpdf/*.cc patrepl s/make_pointer_holder/std::make_shared/g libqpdf/*.cc patrepl s/make_array_pointer_holder/QUtil::make_shared_array/g libqpdf/*.cc patrepl s,qpdf/std::shared_ptr,qpdf/PointerHolder, **/*.cc **/*.hh git restore include/qpdf/PointerHolder.hh cleanpatch ./format-code
2022-04-04Programmatically apply new formatting to codeJay Berkenbilt
Run this: for i in **/*.cc **/*.c **/*.h **/*.hh; do clang-format < $i >| $i.new && mv $i.new $i done
2022-02-28Remove Version.h -- it was never usedJay Berkenbilt
2022-02-08Add QPDF::getVersionAsPDFVersionJay Berkenbilt
2022-02-08WHITESPACE ONLY -- expand tabs in source codeJay Berkenbilt
This comment expands all tabs using an 8-character tab-width. You should ignore this commit when using git blame or use git blame -w. In the early days, I used to use tabs where possible for indentation, since emacs did this automatically. In recent years, I have switched to only using spaces, which means qpdf source code has been a mixture of spaces and tabs. I have avoided cleaning this up because of not wanting gratuitous whitespaces change to cloud the output of git blame, but I changed my mind after discussing with users who view qpdf source code in editors/IDEs that have other tab widths by default and in light of the fact that I am planning to start applying automatic code formatting soon.
2022-02-05API contract: qpdf_get_qpdf_version() returns a staticJay Berkenbilt