X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=include%2Fbabeltrace%2Fctf-ir%2Fstream.h;h=69829280c904e5cb4f7b3c65a01e9469853ae4a6;hp=73fc5369d324b83ac6bf68d724e18cdf86d067a9;hb=44c440bc5fe8219cc17d1b786d91fd83c4c9860a;hpb=263a7df55e73a6c558020d4ad5efdc9e4a6b386b diff --git a/include/babeltrace/ctf-ir/stream.h b/include/babeltrace/ctf-ir/stream.h index 73fc5369..69829280 100644 --- a/include/babeltrace/ctf-ir/stream.h +++ b/include/babeltrace/ctf-ir/stream.h @@ -30,171 +30,30 @@ * http://www.efficios.com/ctf */ -#include +/* For enum bt_property_availability */ +#include + +#include #ifdef __cplusplus extern "C" { #endif -struct bt_ctf_event; -struct bt_ctf_stream; +struct bt_stream; +struct bt_stream_class; -/* - * bt_ctf_stream_get_discarded_events_count: get the number of discarded - * events associated with this stream. - * - * Note that discarded events are not stored if the stream's packet - * context has no "events_discarded" field. An error will be returned - * in that case. - * - * @param stream Stream instance. - * - * Returns the number of discarded events, a negative value on error. - */ -extern int bt_ctf_stream_get_discarded_events_count( - struct bt_ctf_stream *stream, uint64_t *count); +extern struct bt_stream *bt_stream_create(struct bt_stream_class *stream_class); -/* - * bt_ctf_stream_append_discarded_events: increment discarded events count. - * - * Increase the current packet's discarded event count. Has no effect if the - * stream class' packet context has no "events_discarded" field. - * - * @param stream Stream instance. - * @param event_count Number of discarded events to add to the stream's current - * packet. - */ -extern void bt_ctf_stream_append_discarded_events(struct bt_ctf_stream *stream, - uint64_t event_count); - -/* - * bt_ctf_stream_append_event: append an event to the stream. - * - * Append "event" to the stream's current packet. The stream's associated clock - * will be sampled during this call. The event shall not be modified after - * being appended to a stream. The stream will share the event's ownership by - * incrementing its reference count. The current packet is not flushed to disk - * until the next call to bt_ctf_stream_flush. - * - * The stream event context will be sampled for every appended event if - * a stream event context was defined. - * - * @param stream Stream instance. - * @param event Event instance to append to the stream's current packet. - * - * Returns 0 on success, a negative value on error. - */ -extern int bt_ctf_stream_append_event(struct bt_ctf_stream *stream, - struct bt_ctf_event *event); +extern struct bt_stream *bt_stream_create_with_id( + struct bt_stream_class *stream_class, uint64_t id); -/* - * bt_ctf_stream_get_packet_context: get a stream's packet context. - * - * @param stream Stream instance. - * - * Returns a field instance on success, NULL on error. - */ -extern struct bt_ctf_field *bt_ctf_stream_get_packet_context( - struct bt_ctf_stream *stream); +extern struct bt_stream_class *bt_stream_borrow_class(struct bt_stream *stream); -/* - * bt_ctf_stream_set_packet_context: set a stream's packet context. - * - * The packet context's type must match the stream class' packet - * context type. - * - * @param stream Stream instance. - * @param packet_context Packet context field instance. - * - * Returns a field instance on success, NULL on error. - */ -extern int bt_ctf_stream_set_packet_context( - struct bt_ctf_stream *stream, - struct bt_ctf_field *packet_context); +extern const char *bt_stream_get_name(struct bt_stream *stream); -/* - * bt_ctf_stream_get_event_context: get a stream's event context. - * - * @param stream Stream instance. - * - * Returns a field instance on success, NULL on error. - */ -extern struct bt_ctf_field *bt_ctf_stream_get_event_context( - struct bt_ctf_stream *stream); +extern int bt_stream_set_name(struct bt_stream *stream, const char *name); -/* - * bt_ctf_stream_set_event_context: set a stream's event context. - * - * The event context's type must match the stream class' event - * context type. - * - * @param stream Stream instance. - * @param event_context Event context field instance. - * - * Returns a field instance on success, NULL on error. - */ -extern int bt_ctf_stream_set_event_context( - struct bt_ctf_stream *stream, - struct bt_ctf_field *event_context); - -/* - * bt_ctf_stream_get_packet_header: get a stream's packet header. - * - * @param stream Stream instance. - * - * Returns a field instance on success, NULL on error. - */ -extern struct bt_ctf_field *bt_ctf_stream_get_packet_header( - struct bt_ctf_stream *stream); - -/* - * bt_ctf_stream_set_packet_header: set a stream's packet header. - * - * The packet header's type must match the trace's packet header - * type. - * - * @param stream Stream instance. - * @param packet_header Packet header instance. - * - * Returns a field instance on success, NULL on error. - */ -extern int bt_ctf_stream_set_packet_header( - struct bt_ctf_stream *stream, - struct bt_ctf_field *packet_header); - -/* - * bt_ctf_stream_flush: flush a stream. - * - * The stream's current packet's events will be flushed, thus closing the - * current packet. Events subsequently appended to the stream will be - * added to a new packet. - * - * Flushing will also set the packet context's default attributes if - * they remained unset while populating the current packet. These default - * attributes, along with their expected types, are detailed in stream-class.h. - * - * @param stream Stream instance. - * - * Returns 0 on success, a negative value on error. - */ -extern int bt_ctf_stream_flush(struct bt_ctf_stream *stream); - -/* - * bt_ctf_stream_get and bt_ctf_stream_put: increment and decrement the - * stream's reference count. - * - * These functions ensure that the stream 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. - * - * When the stream's reference count is decremented to 0 by a - * bt_ctf_stream_put, the stream is freed. - * - * @param stream Stream instance. - */ -extern void bt_ctf_stream_get(struct bt_ctf_stream *stream); -extern void bt_ctf_stream_put(struct bt_ctf_stream *stream); +extern uint64_t bt_stream_get_id(struct bt_stream *stream); #ifdef __cplusplus }