X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=plugins%2Fctf%2Ffs-src%2Fdata-stream-file.h;h=feeef675257f1f23bc4762b7bbfc1237bd4ac6f8;hb=3fadfbc0c91f82c46bd36e6e0657ea93570c9db1;hp=8c859e77472312a9edfa102824fdfd03bbb8aae2;hpb=90157d89276ed1a569a2d4ffcfeed0b415817c12;p=babeltrace.git diff --git a/plugins/ctf/fs-src/data-stream-file.h b/plugins/ctf/fs-src/data-stream-file.h index 8c859e77..feeef675 100644 --- a/plugins/ctf/fs-src/data-stream-file.h +++ b/plugins/ctf/fs-src/data-stream-file.h @@ -26,10 +26,10 @@ #include #include #include -#include -#include +#include +#include -#include "../common/notif-iter/notif-iter.h" +#include "../common/msg-iter/msg-iter.h" #include "lttng-index.h" struct ctf_fs_component; @@ -37,65 +37,31 @@ struct ctf_fs_file; struct ctf_fs_trace; struct ctf_fs_ds_file; -struct ctf_fs_ds_index_entry { - /* Position, in bytes, of the packet from the beginning of the file. */ - uint64_t offset; - - /* Size of the packet, in bytes. */ - uint64_t packet_size; - - /* - * Extracted from the packet context, relative to the respective fields' - * mapped clock classes (in cycles). - */ - uint64_t timestamp_begin, timestamp_end; - - /* - * Converted from the packet context, relative to the trace's EPOCH - * (in ns since EPOCH). - */ - int64_t timestamp_begin_ns, timestamp_end_ns; -}; - -struct ctf_fs_ds_index { - /* Array of struct ctf_fs_fd_index_entry. */ - GArray *entries; -}; - struct ctf_fs_ds_file_info { - /* - * Owned by this. May be NULL. - * - * A stream cannot be assumed to be indexed as the indexing might have - * been skipped. Moreover, the index's fields may not all be available - * depending on the producer (e.g. timestamp_begin/end are not - * mandatory). - * - * FIXME In such cases (missing fields), the indexing is aborted as - * no the index entries don't have a concept of fields being present - * or not. - */ - struct ctf_fs_ds_index *index; - /* Owned by this. */ GString *path; /* Guaranteed to be set, as opposed to the index. */ - uint64_t begin_ns; + int64_t begin_ns; }; +struct ctf_fs_metadata; + struct ctf_fs_ds_file { - /* Owned by this */ - struct ctf_fs_file *file; + /* Weak */ + struct ctf_fs_metadata *metadata; + + /* Weak */ + bt_self_message_iterator *pc_msg_iter; /* Owned by this */ - struct bt_ctf_stream *stream; + struct ctf_fs_file *file; /* Owned by this */ - struct bt_clock_class_priority_map *cc_prio_map; + bt_stream *stream; /* Weak */ - struct bt_ctf_notif_iter *notif_iter; + struct bt_msg_iter *msg_iter; void *mmap_addr; @@ -123,29 +89,28 @@ struct ctf_fs_ds_file { BT_HIDDEN struct ctf_fs_ds_file *ctf_fs_ds_file_create( struct ctf_fs_trace *ctf_fs_trace, - struct bt_ctf_notif_iter *notif_iter, - struct bt_ctf_stream *stream, const char *path); - -BT_HIDDEN -int ctf_fs_ds_file_get_packet_header_context_fields( - struct ctf_fs_ds_file *ds_file, - struct bt_ctf_field **packet_header_field, - struct bt_ctf_field **packet_context_field); + bt_self_message_iterator *pc_msg_iter, + struct bt_msg_iter *msg_iter, + bt_stream *stream, const char *path); BT_HIDDEN void ctf_fs_ds_file_destroy(struct ctf_fs_ds_file *stream); BT_HIDDEN -struct bt_notification_iterator_next_method_return ctf_fs_ds_file_next( - struct ctf_fs_ds_file *stream); +bt_self_message_iterator_status ctf_fs_ds_file_next( + struct ctf_fs_ds_file *ds_file, + bt_message **msg); BT_HIDDEN struct ctf_fs_ds_index *ctf_fs_ds_file_build_index( struct ctf_fs_ds_file *ds_file); +BT_HIDDEN +struct ctf_fs_ds_index *ctf_fs_ds_index_create(); + BT_HIDDEN void ctf_fs_ds_index_destroy(struct ctf_fs_ds_index *index); -extern struct bt_ctf_notif_iter_medium_ops ctf_fs_ds_file_medops; +extern struct bt_msg_iter_medium_ops ctf_fs_ds_file_medops; #endif /* CTF_FS_DS_FILE_H */