X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fctf-writer%2Fstream-class.h;h=f9f494366d73a6d60c64d5265cc6f52315bdc2d1;hb=c2606e2f189b382e5481ebc30f6e301ee2df61f9;hp=32096086cb3ea38816cee2c4f09a46dece9e9cd8;hpb=8c18d80b69a10f94980d33e6f1c1bdb26b447487;p=babeltrace.git diff --git a/include/babeltrace/ctf-writer/stream-class.h b/include/babeltrace/ctf-writer/stream-class.h index 32096086..f9f49436 100644 --- a/include/babeltrace/ctf-writer/stream-class.h +++ b/include/babeltrace/ctf-writer/stream-class.h @@ -2,8 +2,6 @@ #define BABELTRACE_CTF_WRITER_STREAM_CLASS_H /* - * BabelTrace - CTF Writer: Stream Class - * * Copyright 2014 EfficiOS Inc. * * Author: Jérémie Galarneau @@ -30,30 +28,92 @@ * http://www.efficios.com/ctf */ -#include +#include #ifdef __cplusplus extern "C" { #endif -/* - * bt_ctf_stream_class_get and bt_ctf_stream_class_put: increment and - * decrement the stream class' reference count. - * - * You may also use bt_ctf_get() and bt_ctf_put() with stream class objects. - * - * These functions ensure that the stream class won't be destroyed while it - * is in use. The same number of get and put (plus one extra put to - * release the initial reference done at creation) have to be done to - * destroy a stream class. - * - * When the stream class' reference count is decremented to 0 by a - * bt_ctf_stream_class_put, the stream class is freed. - * - * @param stream_class Stream class. - */ -extern void bt_ctf_stream_class_get(struct bt_ctf_stream_class *stream_class); -extern void bt_ctf_stream_class_put(struct bt_ctf_stream_class *stream_class); +struct bt_ctf_stream_class; +struct bt_ctf_trace; +struct bt_ctf_event_class; +struct bt_ctf_field_type; +struct bt_ctf_clock; + +extern struct bt_ctf_stream_class *bt_ctf_stream_class_create( + const char *name); + +extern struct bt_ctf_trace *bt_ctf_stream_class_get_trace( + struct bt_ctf_stream_class *stream_class); + +extern const char *bt_ctf_stream_class_get_name( + struct bt_ctf_stream_class *stream_class); + +extern int bt_ctf_stream_class_set_name( + struct bt_ctf_stream_class *stream_class, const char *name); + +extern int64_t bt_ctf_stream_class_get_id( + struct bt_ctf_stream_class *stream_class); + +extern int bt_ctf_stream_class_set_id( + struct bt_ctf_stream_class *stream_class, uint64_t id); + +extern struct bt_ctf_field_type *bt_ctf_stream_class_get_packet_context_type( + struct bt_ctf_stream_class *stream_class); + +extern int bt_ctf_stream_class_set_packet_context_type( + struct bt_ctf_stream_class *stream_class, + struct bt_ctf_field_type *packet_context_type); + +extern struct bt_ctf_field_type * +bt_ctf_stream_class_get_event_header_type( + struct bt_ctf_stream_class *stream_class); + +extern int bt_ctf_stream_class_set_event_header_type( + struct bt_ctf_stream_class *stream_class, + struct bt_ctf_field_type *event_header_type); + +extern struct bt_ctf_field_type * +bt_ctf_stream_class_get_event_context_type( + struct bt_ctf_stream_class *stream_class); + +extern int bt_ctf_stream_class_set_event_context_type( + struct bt_ctf_stream_class *stream_class, + struct bt_ctf_field_type *event_context_type); + +extern int64_t bt_ctf_stream_class_get_event_class_count( + struct bt_ctf_stream_class *stream_class); + +extern struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class_by_index( + struct bt_ctf_stream_class *stream_class, uint64_t index); + +extern struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class_by_id( + struct bt_ctf_stream_class *stream_class, uint64_t id); + +extern int bt_ctf_stream_class_add_event_class( + struct bt_ctf_stream_class *stream_class, + struct bt_ctf_event_class *event_class); + +extern int bt_ctf_stream_class_set_clock( + struct bt_ctf_stream_class *ctf_stream_class, + struct bt_ctf_clock *clock); + +extern struct bt_ctf_clock *bt_ctf_stream_class_get_clock( + struct bt_ctf_stream_class *stream_class); + +/* Pre-2.0 CTF writer compatibility */ +static inline +void bt_ctf_stream_class_get(struct bt_ctf_stream_class *stream_class) +{ + bt_ctf_object_get_ref(stream_class); +} + +/* Pre-2.0 CTF writer compatibility */ +static inline +void bt_ctf_stream_class_put(struct bt_ctf_stream_class *stream_class) +{ + bt_ctf_object_put_ref(stream_class); +} #ifdef __cplusplus }