X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fgraph%2Fnotification-iterator-internal.h;h=2d2ef9cabf08eacccf91e980c633fb209aa4a226;hb=5c5632787fc9cafa602c89a28966bcfd01ec0204;hp=fd3dd4f30ec0134f140ca1491e8967d6ca288947;hpb=8ed535b5ed7341916a1dd486b87bdc6e94ed1b81;p=babeltrace.git diff --git a/include/babeltrace/graph/notification-iterator-internal.h b/include/babeltrace/graph/notification-iterator-internal.h index fd3dd4f3..2d2ef9ca 100644 --- a/include/babeltrace/graph/notification-iterator-internal.h +++ b/include/babeltrace/graph/notification-iterator-internal.h @@ -1,5 +1,5 @@ -#ifndef BABELTRACE_COMPONENT_NOTIFICATION_ITERATOR_INTERNAL_H -#define BABELTRACE_COMPONENT_NOTIFICATION_ITERATOR_INTERNAL_H +#ifndef BABELTRACE_GRAPH_NOTIFICATION_ITERATOR_INTERNAL_H +#define BABELTRACE_GRAPH_NOTIFICATION_ITERATOR_INTERNAL_H /* * BabelTrace - Notification Iterator Internal @@ -34,8 +34,8 @@ #include #include #include +#include #include -#include struct bt_port; struct bt_graph; @@ -95,43 +95,28 @@ struct bt_notification_iterator_private_connection { struct bt_component *upstream_component; /* Weak */ struct bt_port *upstream_port; /* Weak */ struct bt_connection *connection; /* Weak */ - GQueue *queue; /* struct bt_notification * (owned by this) */ + struct bt_graph *graph; /* Weak */ /* * This hash table keeps the state of a stream as viewed by - * this notification iterator. This is used to: + * this notification iterator. This is used to, in developer + * mode: * * * Automatically enqueue "stream begin", "packet begin", * "packet end", and "stream end" notifications depending * on the stream's state and on the next notification returned * by the upstream component. * - * * Make sure that, once the notification iterator has seen - * a "stream end" notification for a given stream, that no - * other notifications which refer to this stream can be - * delivered by this iterator. + * * Make sure that, once the notification iterator has seen a + * "stream end" notification for a given stream, no other + * notifications which refer to this stream can be delivered + * by this iterator. * - * The key (struct bt_ctf_stream *) is not owned by this. The + * The key (struct bt_stream *) is not owned by this. The * value is an allocated state structure. */ GHashTable *stream_states; - /* - * This is an array of actions which can be rolled back. It's - * similar to the memento pattern, but it's not exactly that. It - * is allocated once and reset for each notification to process. - * More details near the implementation. - */ - GArray *actions; - - /* - * This is a mask of notifications to which the user of this - * iterator is subscribed - * (see enum bt_private_connection_notification_iterator_notif_type - * above). - */ - uint32_t subscription_mask; - enum bt_private_connection_notification_iterator_state state; void *user_data; }; @@ -147,7 +132,7 @@ static inline struct bt_notification *bt_notification_iterator_borrow_current_notification( struct bt_notification_iterator *iterator) { - assert(iterator); + BT_ASSERT(iterator); return iterator->current_notification; } @@ -156,19 +141,11 @@ void bt_notification_iterator_replace_current_notification( struct bt_notification_iterator *iterator, struct bt_notification *notification) { - assert(iterator); + BT_ASSERT(iterator); bt_put(iterator->current_notification); iterator->current_notification = bt_get(notification); } -static inline -struct bt_notification_iterator_private_connection * -bt_private_connection_notification_iterator_from_private( - struct bt_private_connection_private_notification_iterator *private_notification_iterator) -{ - return (void *) private_notification_iterator; -} - static inline struct bt_private_connection_private_notification_iterator * bt_private_connection_private_notification_iterator_from_notification_iterator( @@ -181,7 +158,6 @@ BT_HIDDEN enum bt_connection_status bt_private_connection_notification_iterator_create( struct bt_component *upstream_comp, struct bt_port *upstream_port, - const enum bt_notification_type *notification_types, struct bt_connection *connection, struct bt_notification_iterator_private_connection **iterator); @@ -238,4 +214,4 @@ const char *bt_private_connection_notification_iterator_state_string( } }; -#endif /* BABELTRACE_COMPONENT_NOTIFICATION_ITERATOR_INTERNAL_H */ +#endif /* BABELTRACE_GRAPH_NOTIFICATION_ITERATOR_INTERNAL_H */