X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=plugins%2Fctf%2Flttng-live%2Flttng-live-internal.h;h=a698e6bef699aa3217a7436593e4758dad931e15;hb=40f4ba76dd6f9508ca51b6220eaed57632281a07;hp=6b2d71fb86a4554b5d8a3ba30e0cfe078f4504b3;hpb=d85ef162f9130fe7c11564f685d1542bc4782036;p=babeltrace.git diff --git a/plugins/ctf/lttng-live/lttng-live-internal.h b/plugins/ctf/lttng-live/lttng-live-internal.h index 6b2d71fb..a698e6be 100644 --- a/plugins/ctf/lttng-live/lttng-live-internal.h +++ b/plugins/ctf/lttng-live/lttng-live-internal.h @@ -28,18 +28,10 @@ * SOFTWARE. */ -extern int bt_lttng_live_log_level; - #include #include - -#define BT_LOG_OUTPUT_LEVEL bt_lttng_live_log_level -#include - -#include -#include -#include +#include #include "viewer-connection.h" //TODO: this should not be used by plugins. Should copy code into plugin @@ -77,9 +69,9 @@ struct lttng_live_stream_iterator_generic { struct lttng_live_stream_iterator { struct lttng_live_stream_iterator_generic p; - struct bt_ctf_stream *stream; + const struct bt_stream *stream; struct lttng_live_trace *trace; - struct bt_private_port *port; + struct bt_private_port *port; /* weak ref. */ /* Node of stream list within the trace. */ struct bt_list_head node; @@ -88,7 +80,7 @@ struct lttng_live_stream_iterator { * Since only a single iterator per viewer connection, we have * only a single notification iterator per stream. */ - struct bt_ctf_notif_iter *notif_iter; + struct bt_notif_iter *notif_iter; uint64_t viewer_stream_id; @@ -115,7 +107,7 @@ struct lttng_live_no_stream_iterator { struct lttng_live_stream_iterator_generic p; struct lttng_live_component *lttng_live; - struct bt_private_port *port; + struct bt_private_port *port; /* weak ref. */ }; struct lttng_live_component_options { @@ -146,7 +138,7 @@ struct lttng_live_trace { uint64_t id; /* ctf trace ID within the session. */ - struct bt_ctf_trace *trace; + const struct bt_trace *trace; struct lttng_live_metadata *metadata; struct bt_clock_class_priority_map *cc_prio_map; @@ -163,6 +155,9 @@ struct lttng_live_session { struct lttng_live_component *lttng_live; + GString *hostname; + GString *session_name; + uint64_t id; /* List of struct lttng_live_trace */ @@ -179,7 +174,7 @@ struct lttng_live_session { */ struct lttng_live_component { struct bt_object obj; - struct bt_private_component *private_component; /* weak */ + struct bt_self_component *private_component; /* weak */ struct bt_live_viewer_connection *viewer_connection; /* List of struct lttng_live_session */ @@ -189,68 +184,73 @@ struct lttng_live_component { size_t max_query_size; struct lttng_live_component_options options; - struct bt_private_port *no_stream_port; + struct bt_private_port *no_stream_port; /* weak */ struct lttng_live_no_stream_iterator *no_stream_iter; struct bt_component *downstream_component; }; -enum bt_ctf_lttng_live_iterator_status { +enum bt_lttng_live_iterator_status { /** Iterator state has progressed. Continue iteration immediately. */ - BT_CTF_LTTNG_LIVE_ITERATOR_STATUS_CONTINUE = 3, + BT_LTTNG_LIVE_ITERATOR_STATUS_CONTINUE = 3, /** No notification available for now. Try again later. */ - BT_CTF_LTTNG_LIVE_ITERATOR_STATUS_AGAIN = 2, + BT_LTTNG_LIVE_ITERATOR_STATUS_AGAIN = 2, /** No more CTF_LTTNG_LIVEs to be delivered. */ - BT_CTF_LTTNG_LIVE_ITERATOR_STATUS_END = 1, + BT_LTTNG_LIVE_ITERATOR_STATUS_END = 1, /** No error, okay. */ - BT_CTF_LTTNG_LIVE_ITERATOR_STATUS_OK = 0, + BT_LTTNG_LIVE_ITERATOR_STATUS_OK = 0, /** Invalid arguments. */ - BT_CTF_LTTNG_LIVE_ITERATOR_STATUS_INVAL = -1, + BT_LTTNG_LIVE_ITERATOR_STATUS_INVAL = -1, /** General error. */ - BT_CTF_LTTNG_LIVE_ITERATOR_STATUS_ERROR = -2, + BT_LTTNG_LIVE_ITERATOR_STATUS_ERROR = -2, /** Out of memory. */ - BT_CTF_LTTNG_LIVE_ITERATOR_STATUS_NOMEM = -3, + BT_LTTNG_LIVE_ITERATOR_STATUS_NOMEM = -3, /** Unsupported iterator feature. */ - BT_CTF_LTTNG_LIVE_ITERATOR_STATUS_UNSUPPORTED = -4, + BT_LTTNG_LIVE_ITERATOR_STATUS_UNSUPPORTED = -4, }; -enum bt_component_status lttng_live_component_init(struct bt_private_component *source, +enum bt_component_status lttng_live_component_init(struct bt_self_component *source, struct bt_value *params, void *init_method_data); -struct bt_value *lttng_live_query(struct bt_component_class *comp_class, +struct bt_component_class_query_method_return lttng_live_query( + struct bt_component_class *comp_class, + struct bt_query_executor *query_exec, const char *object, struct bt_value *params); -void lttng_live_component_finalize(struct bt_private_component *component); +void lttng_live_component_finalize(struct bt_self_component *component); -struct bt_notification_iterator_next_return lttng_live_iterator_next( - struct bt_private_notification_iterator *iterator); +struct bt_notification_iterator_next_method_return lttng_live_iterator_next( + struct bt_self_notification_iterator *iterator); enum bt_component_status lttng_live_accept_port_connection( - struct bt_private_component *private_component, + struct bt_self_component *private_component, struct bt_private_port *self_private_port, struct bt_port *other_port); enum bt_notification_iterator_status lttng_live_iterator_init( - struct bt_private_notification_iterator *it, + struct bt_self_notification_iterator *it, struct bt_private_port *port); -void lttng_live_iterator_finalize(struct bt_private_notification_iterator *it); +void lttng_live_iterator_finalize(struct bt_self_notification_iterator *it); int lttng_live_create_viewer_session(struct lttng_live_component *lttng_live); int lttng_live_attach_session(struct lttng_live_session *session); int lttng_live_detach_session(struct lttng_live_session *session); -enum bt_ctf_lttng_live_iterator_status lttng_live_get_new_streams( +enum bt_lttng_live_iterator_status lttng_live_get_new_streams( struct lttng_live_session *session); -int lttng_live_add_session(struct lttng_live_component *lttng_live, uint64_t session_id); +int lttng_live_add_session(struct lttng_live_component *lttng_live, + uint64_t session_id, + const char *hostname, + const char *session_name); ssize_t lttng_live_get_one_metadata_packet(struct lttng_live_trace *trace, FILE *fp); -enum bt_ctf_lttng_live_iterator_status lttng_live_get_next_index( +enum bt_lttng_live_iterator_status lttng_live_get_next_index( struct lttng_live_component *lttng_live, struct lttng_live_stream_iterator *stream, struct packet_index *index); -enum bt_ctf_notif_iter_medium_status lttng_live_get_stream_bytes( +enum bt_notif_iter_medium_status lttng_live_get_stream_bytes( struct lttng_live_component *lttng_live, struct lttng_live_stream_iterator *stream, uint8_t *buf, uint64_t offset, uint64_t req_len, uint64_t *recv_len); @@ -265,4 +265,6 @@ struct lttng_live_trace *lttng_live_ref_trace( void lttng_live_unref_trace(struct lttng_live_trace *trace); void lttng_live_need_new_streams(struct lttng_live_component *lttng_live); +bt_bool lttng_live_is_canceled(struct lttng_live_component *lttng_live); + #endif /* BABELTRACE_PLUGIN_CTF_LTTNG_LIVE_INTERNAL_H */