This is an automated email from the git hooks/post-receive script.

guillem pushed a commit to branch main
in repository dpkg.

View the commit online:
https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=35449494e0fe370edf745d4d8eaa8513d28970fa

commit 35449494e0fe370edf745d4d8eaa8513d28970fa
Author: Guillem Jover <[email protected]>
AuthorDate: Sat Aug 10 02:37:50 2024 +0200

    libdpkg: Add new varbuf_state C++ methods for all functions
    
    This should make using varbuf_state from a C++ codebase more ergonomic.
---
 lib/dpkg/varbuf.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/lib/dpkg/varbuf.h b/lib/dpkg/varbuf.h
index 87be2641f..b6af656da 100644
--- a/lib/dpkg/varbuf.h
+++ b/lib/dpkg/varbuf.h
@@ -149,6 +149,17 @@ void varbuf_trim_char_prefix(struct varbuf *v, int prefix);
 struct varbuf_state {
        struct varbuf *v;
        size_t used;
+
+#ifdef __cplusplus
+       varbuf_state();
+       explicit varbuf_state(varbuf &vb);
+       ~varbuf_state();
+
+       void snapshot(varbuf &vb);
+       void rollback();
+       size_t rollback_len();
+       const char *rollback_end();
+#endif
 };
 
 void varbuf_snapshot(struct varbuf *v, struct varbuf_state *vs);
@@ -360,6 +371,47 @@ varbuf::str()
 {
        return varbuf_str(this);
 }
+
+inline
+varbuf_state::varbuf_state():
+       v(nullptr), used(0)
+{
+}
+
+inline
+varbuf_state::varbuf_state(varbuf &vb)
+{
+       varbuf_snapshot(&vb, this);
+}
+
+inline
+varbuf_state::~varbuf_state()
+{
+}
+
+inline void
+varbuf_state::snapshot(varbuf &vb)
+{
+       varbuf_snapshot(&vb, this);
+}
+
+inline void
+varbuf_state::rollback()
+{
+       varbuf_rollback(this);
+}
+
+inline size_t
+varbuf_state::rollback_len()
+{
+       return varbuf_rollback_len(this);
+}
+
+inline const char *
+varbuf_state::rollback_end()
+{
+       return varbuf_rollback_end(this);
+}
 #endif
 
 #endif /* LIBDPKG_VARBUF_H */

-- 
Dpkg.Org's dpkg

Reply via email to