X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Fctf-trace.h;h=489c5f1d58ba05dd7ada2f97076ffad6c0402e29;hb=f263b7fd113e51d0737554e8232b8669e142a260;hp=6e39af02b936273447bf69379f7169e90c4a6971;hpb=d3e2ba59faddb31870e2ce29b6a881f7ad5ad883;p=lttng-tools.git diff --git a/src/bin/lttng-relayd/ctf-trace.h b/src/bin/lttng-relayd/ctf-trace.h index 6e39af02b..489c5f1d5 100644 --- a/src/bin/lttng-relayd/ctf-trace.h +++ b/src/bin/lttng-relayd/ctf-trace.h @@ -23,18 +23,42 @@ #include -#include "lttng-relayd.h" +#include "session.h" +#include "stream.h" struct ctf_trace { int refcount; + unsigned int invalid_flag:1; uint64_t id; uint64_t metadata_received; uint64_t metadata_sent; struct relay_stream *metadata_stream; + struct relay_viewer_stream *viewer_metadata_stream; + /* Node indexed by stream path name in the corresponding session. */ + struct lttng_ht_node_str node; + + /* Relay stream associated with this ctf trace. */ + struct cds_list_head stream_list; }; -void ctf_trace_assign(struct lttng_ht *ht, struct relay_stream *stream); -struct ctf_trace *ctf_trace_create(void); -void ctf_trace_try_destroy(struct ctf_trace *obj); +static inline void ctf_trace_get_ref(struct ctf_trace *trace) +{ + uatomic_inc(&trace->refcount); +} + +static inline void ctf_trace_put_ref(struct ctf_trace *trace) +{ + uatomic_add(&trace->refcount, -1); +} + +void ctf_trace_assign(struct relay_stream *stream); +struct ctf_trace *ctf_trace_create(char *path_name); +void ctf_trace_destroy(struct ctf_trace *obj); +void ctf_trace_try_destroy(struct relay_session *session, + struct ctf_trace *ctf_trace); +struct ctf_trace *ctf_trace_find_by_path(struct lttng_ht *ht, + char *path_name); +void ctf_trace_add(struct lttng_ht *ht, struct ctf_trace *trace); +void ctf_trace_delete(struct lttng_ht *ht, struct ctf_trace *trace); #endif /* _CTF_TRACE_H */