X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fhashtable%2Fhashtable.hpp;fp=src%2Fcommon%2Fhashtable%2Fhashtable.hpp;h=dee40ddfdf935e4a5f53a8852de6ad21d303e24e;hp=bd5cb948eac3a1be1f1e7a17b32c4ed2721d02fa;hb=aeeb48c6a7dd4bcc092b3105439489fc393f6425;hpb=3130a40c184a9315f0a4ca9a235273277fdcabde diff --git a/src/common/hashtable/hashtable.hpp b/src/common/hashtable/hashtable.hpp index bd5cb948e..dee40ddfd 100644 --- a/src/common/hashtable/hashtable.hpp +++ b/src/common/hashtable/hashtable.hpp @@ -10,6 +10,7 @@ #include #include +#include #include #include @@ -27,7 +28,10 @@ enum lttng_ht_type { LTTNG_HT_TYPE_TWO_U64, }; +struct lttng_ht_deleter; + struct lttng_ht { + using uptr = std::unique_ptr; struct cds_lfht *ht; cds_lfht_match_fct match_fct; hash_fct_type hash_fct; @@ -69,6 +73,9 @@ struct lttng_ht_node_two_u64 { /* Hashtable new and destroy */ struct lttng_ht *lttng_ht_new(unsigned long size, enum lttng_ht_type type); void lttng_ht_destroy(struct lttng_ht *ht); +struct lttng_ht_deleter { + void operator()(lttng_ht *ht) { lttng_ht_destroy(ht); }; +}; /* Specialized node init and free functions */ void lttng_ht_node_init_str(struct lttng_ht_node_str *node, char *key);