This chapter describes the objects made available by Tclnotmuch which, of course, reflect those implied by the Notmuch library API.
The underlying Notmuch library is build on a hierarchical memory allocator called talloc
, and in the API all objects are effectively part of a top-level database
object (perhaps indirectly).
This means that as soon as an API object is deleted, all underlying derived API objects such as queries
, messages
, message
, and tags
will be freed by the Notmuch library as well. Accessing these objects through the API may lead to segfaults or other unexpected behaviour.
Tclnotmuch provides a set of TclOO objects to wrap and (at least sometimes) simplify the use of the Notmuch API objects. One obvious simplification is to deal with the possible errors mentioned in the previous paragraph by recording dependencies between objects.