X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=plugins%2Fctf%2Ffs-sink%2Fwriter.c;h=38db9a5e474da2991b9250c100d73d9cd3d0aee4;hb=d6e69534ef08a2dd8bff9eb5af1eab63736b3d31;hp=01dbc1849f01caa3b49d03722e744c5187ecc65d;hpb=9d408fcae74602e3591f66623ceb85f482d948ed;p=babeltrace.git diff --git a/plugins/ctf/fs-sink/writer.c b/plugins/ctf/fs-sink/writer.c index 01dbc184..38db9a5e 100644 --- a/plugins/ctf/fs-sink/writer.c +++ b/plugins/ctf/fs-sink/writer.c @@ -35,7 +35,7 @@ #include #include #include "writer.h" -#include +#include static gboolean empty_trace_map(gpointer key, gpointer value, gpointer user_data) @@ -52,7 +52,7 @@ gboolean empty_trace_map(gpointer key, gpointer value, gpointer user_data) static void destroy_writer_component_data(struct writer_component *writer_component) { - bt_put(writer_component->input_iterator); + bt_object_put_ref(writer_component->input_iterator); g_hash_table_foreach_remove(writer_component->trace_map, empty_trace_map, writer_component); @@ -63,10 +63,10 @@ void destroy_writer_component_data(struct writer_component *writer_component) } BT_HIDDEN -void writer_component_finalize(struct bt_private_component *component) +void writer_component_finalize(bt_self_component *component) { struct writer_component *writer_component = (struct writer_component *) - bt_private_component_get_user_data(component); + bt_self_component_get_user_data(component); destroy_writer_component_data(writer_component); g_free(writer_component); @@ -75,7 +75,7 @@ void writer_component_finalize(struct bt_private_component *component) static void free_fs_writer(struct fs_writer *fs_writer) { - bt_put(fs_writer->writer); + bt_object_put_ref(fs_writer->writer); g_free(fs_writer); } @@ -109,9 +109,9 @@ end: } static -enum bt_component_status handle_notification( +enum bt_component_status handle_message( struct writer_component *writer_component, - struct bt_notification *notification) + const bt_message *message) { enum bt_component_status ret = BT_COMPONENT_STATUS_OK; @@ -120,11 +120,11 @@ enum bt_component_status handle_notification( goto end; } - switch (bt_notification_get_type(notification)) { - case BT_NOTIFICATION_TYPE_PACKET_BEGIN: + switch (bt_message_get_type(message)) { + case BT_MESSAGE_TYPE_PACKET_BEGINNING: { - struct bt_ctf_packet *packet = - bt_notification_packet_begin_get_packet(notification); + const bt_packet *packet = + bt_message_packet_beginning_get_packet(message); if (!packet) { ret = BT_COMPONENT_STATUS_ERROR; @@ -132,66 +132,66 @@ enum bt_component_status handle_notification( } ret = writer_new_packet(writer_component, packet); - bt_put(packet); + bt_packet_put_ref(packet); break; } - case BT_NOTIFICATION_TYPE_PACKET_END: + case BT_MESSAGE_TYPE_PACKET_END: { - struct bt_ctf_packet *packet = - bt_notification_packet_end_get_packet(notification); + const bt_packet *packet = + bt_message_packet_end_get_packet(message); if (!packet) { ret = BT_COMPONENT_STATUS_ERROR; goto end; } ret = writer_close_packet(writer_component, packet); - bt_put(packet); + bt_packet_put_ref(packet); break; } - case BT_NOTIFICATION_TYPE_EVENT: + case BT_MESSAGE_TYPE_EVENT: { - struct bt_ctf_event *event = bt_notification_event_get_event( - notification); + const bt_event *event = bt_message_event_get_event( + message); if (!event) { ret = BT_COMPONENT_STATUS_ERROR; goto end; } ret = writer_output_event(writer_component, event); - bt_put(event); + bt_object_put_ref(event); if (ret != BT_COMPONENT_STATUS_OK) { goto end; } break; } - case BT_NOTIFICATION_TYPE_STREAM_BEGIN: + case BT_MESSAGE_TYPE_STREAM_BEGINNING: { - struct bt_ctf_stream *stream = - bt_notification_stream_begin_get_stream(notification); + const bt_stream *stream = + bt_message_stream_beginning_get_stream(message); if (!stream) { ret = BT_COMPONENT_STATUS_ERROR; goto end; } ret = writer_stream_begin(writer_component, stream); - bt_put(stream); + bt_stream_put_ref(stream); break; } - case BT_NOTIFICATION_TYPE_STREAM_END: + case BT_MESSAGE_TYPE_STREAM_END: { - struct bt_ctf_stream *stream = - bt_notification_stream_end_get_stream(notification); + const bt_stream *stream = + bt_message_stream_end_get_stream(message); if (!stream) { ret = BT_COMPONENT_STATUS_ERROR; goto end; } ret = writer_stream_end(writer_component, stream); - bt_put(stream); + bt_stream_put_ref(stream); break; } default: - puts("Unhandled notification type"); + break; } end: return ret; @@ -199,45 +199,37 @@ end: BT_HIDDEN void writer_component_port_connected( - struct bt_private_component *component, + bt_self_component *component, struct bt_private_port *self_port, - struct bt_port *other_port) + const bt_port *other_port) { struct bt_private_connection *connection; struct writer_component *writer; enum bt_connection_status conn_status; - static const enum bt_notification_type notif_types[] = { - BT_NOTIFICATION_TYPE_EVENT, - BT_NOTIFICATION_TYPE_PACKET_BEGIN, - BT_NOTIFICATION_TYPE_PACKET_END, - BT_NOTIFICATION_TYPE_STREAM_BEGIN, - BT_NOTIFICATION_TYPE_STREAM_END, - BT_NOTIFICATION_TYPE_SENTINEL, - }; - - writer = bt_private_component_get_user_data(component); - assert(writer); - assert(!writer->input_iterator); - connection = bt_private_port_get_private_connection(self_port); - assert(connection); - conn_status = bt_private_connection_create_notification_iterator( - connection, notif_types, &writer->input_iterator); + + writer = bt_self_component_get_user_data(component); + BT_ASSERT(writer); + BT_ASSERT(!writer->input_iterator); + connection = bt_private_port_get_connection(self_port); + BT_ASSERT(connection); + conn_status = bt_private_connection_create_message_iterator( + connection, &writer->input_iterator); if (conn_status != BT_CONNECTION_STATUS_OK) { writer->error = true; } - bt_put(connection); + bt_object_put_ref(connection); } BT_HIDDEN -enum bt_component_status writer_run(struct bt_private_component *component) +enum bt_component_status writer_run(bt_self_component *component) { enum bt_component_status ret; - struct bt_notification *notification = NULL; - struct bt_notification_iterator *it; + const bt_message *message = NULL; + bt_message_iterator *it; struct writer_component *writer_component = - bt_private_component_get_user_data(component); - enum bt_notification_iterator_status it_ret; + bt_self_component_get_user_data(component); + enum bt_message_iterator_status it_ret; if (unlikely(writer_component->error)) { ret = BT_COMPONENT_STATUS_ERROR; @@ -245,40 +237,40 @@ enum bt_component_status writer_run(struct bt_private_component *component) } it = writer_component->input_iterator; - assert(it); - it_ret = bt_notification_iterator_next(it); + BT_ASSERT(it); + it_ret = bt_message_iterator_next(it); switch (it_ret) { - case BT_NOTIFICATION_ITERATOR_STATUS_END: + case BT_MESSAGE_ITERATOR_STATUS_END: ret = BT_COMPONENT_STATUS_END; - BT_PUT(writer_component->input_iterator); + BT_OBJECT_PUT_REF_AND_RESET(writer_component->input_iterator); goto end; - case BT_NOTIFICATION_ITERATOR_STATUS_AGAIN: + case BT_MESSAGE_ITERATOR_STATUS_AGAIN: ret = BT_COMPONENT_STATUS_AGAIN; goto end; - case BT_NOTIFICATION_ITERATOR_STATUS_OK: + case BT_MESSAGE_ITERATOR_STATUS_OK: break; default: ret = BT_COMPONENT_STATUS_ERROR; goto end; } - notification = bt_notification_iterator_get_notification(it); - assert(notification); - ret = handle_notification(writer_component, notification); + message = bt_message_iterator_get_message(it); + BT_ASSERT(message); + ret = handle_message(writer_component, message); end: - bt_put(notification); + bt_object_put_ref(message); return ret; } static enum bt_component_status apply_one_bool(const char *key, - struct bt_value *params, + bt_value *params, bool *option, bool *found) { enum bt_component_status ret = BT_COMPONENT_STATUS_OK; - struct bt_value *value = NULL; + bt_value *value = NULL; enum bt_value_status status; bt_bool bool_val; @@ -286,30 +278,26 @@ enum bt_component_status apply_one_bool(const char *key, if (!value) { goto end; } - status = bt_value_bool_get(value, &bool_val); - if (status != BT_VALUE_STATUS_OK) { - ret = BT_COMPONENT_STATUS_ERROR; - goto end; - } + bool_val = bt_value_bool_get(value); *option = (bool) bool_val; if (found) { *found = true; } end: - bt_put(value); + bt_value_put_ref(value); return ret; } BT_HIDDEN enum bt_component_status writer_component_init( - struct bt_private_component *component, struct bt_value *params, + bt_self_component *component, bt_value *params, UNUSED_VAR void *init_method_data) { enum bt_component_status ret; enum bt_value_status value_ret; struct writer_component *writer_component = create_writer_component(); - struct bt_value *value = NULL; + bt_value *value = NULL; const char *path; if (!writer_component) { @@ -317,7 +305,7 @@ enum bt_component_status writer_component_init( goto end; } - ret = bt_private_component_sink_add_input_private_port(component, + ret = bt_self_component_sink_add_input_port(component, "in", NULL, NULL); if (ret != BT_COMPONENT_STATUS_OK) { goto end; @@ -335,7 +323,7 @@ enum bt_component_status writer_component_init( ret = BT_COMPONENT_STATUS_INVALID; goto error; } - bt_put(value); + bt_object_put_ref(value); writer_component->base_path = g_string_new(path); if (!writer_component->base_path) { @@ -350,7 +338,7 @@ enum bt_component_status writer_component_init( goto end; } - ret = bt_private_component_set_user_data(component, writer_component); + ret = bt_self_component_set_user_data(component, writer_component); if (ret != BT_COMPONENT_STATUS_OK) { goto error; }