X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fplugins%2Fctf%2Ffs-src%2Fdata-stream-file.h;h=f033dab94f5931d18a71313d64ece928bfe2fd47;hb=dfcb42a693dadc4f869f8d5abaad1a92b5b853eb;hp=505e46af3dabaffa38695798442215f708cf39a8;hpb=f5f7e8dfac0e2a840f56201bb051610bfe219c58;p=babeltrace.git diff --git a/src/plugins/ctf/fs-src/data-stream-file.h b/src/plugins/ctf/fs-src/data-stream-file.h index 505e46af..f033dab9 100644 --- a/src/plugins/ctf/fs-src/data-stream-file.h +++ b/src/plugins/ctf/fs-src/data-stream-file.h @@ -36,6 +36,8 @@ struct ctf_fs_component; struct ctf_fs_file; struct ctf_fs_trace; struct ctf_fs_ds_file; +struct ctf_fs_ds_file_group; +struct ctf_fs_ds_group_medops_data; struct ctf_fs_ds_file_info { /* Owned by this. */ @@ -65,9 +67,6 @@ struct ctf_fs_ds_file { /* Owned by this */ bt_stream *stream; - /* Weak */ - struct ctf_msg_iter *msg_iter; - void *mmap_addr; /* @@ -80,37 +79,30 @@ struct ctf_fs_ds_file { size_t mmap_len; /* Offset in the file where the current mapping starts. */ - off_t mmap_offset; + off_t mmap_offset_in_file; /* * Offset, in the current mapping, of the address to return on the next * request. */ - off_t request_offset; - - bool end_reached; + off_t request_offset_in_mapping; }; BT_HIDDEN struct ctf_fs_ds_file *ctf_fs_ds_file_create( struct ctf_fs_trace *ctf_fs_trace, bt_self_message_iterator *self_msg_iter, - struct ctf_msg_iter *msg_iter, bt_stream *stream, const char *path, bt_logging_level log_level); BT_HIDDEN void ctf_fs_ds_file_destroy(struct ctf_fs_ds_file *stream); -BT_HIDDEN -bt_component_class_message_iterator_next_method_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, - struct ctf_fs_ds_file_info *ds_file_info); + struct ctf_fs_ds_file_info *ds_file_info, + struct ctf_msg_iter *msg_iter); BT_HIDDEN struct ctf_fs_ds_index *ctf_fs_ds_index_create(bt_logging_level log_level, @@ -119,6 +111,36 @@ struct ctf_fs_ds_index *ctf_fs_ds_index_create(bt_logging_level log_level, BT_HIDDEN void ctf_fs_ds_index_destroy(struct ctf_fs_ds_index *index); +/* + * Medium operations to iterate on a single ctf_fs_ds_file. + * + * The data pointer when using this must be a pointer to the ctf_fs_ds_file. + */ extern struct ctf_msg_iter_medium_ops ctf_fs_ds_file_medops; +/* + * Medium operations to iterate on the packet of a ctf_fs_ds_group. + * + * The iteration is done based on the index of the group. + * + * The data pointer when using these medops must be a pointer to a ctf_fs_ds + * group_medops_data structure. + */ +BT_HIDDEN +extern struct ctf_msg_iter_medium_ops ctf_fs_ds_group_medops; + +BT_HIDDEN +enum ctf_msg_iter_medium_status ctf_fs_ds_group_medops_data_create( + struct ctf_fs_ds_file_group *ds_file_group, + bt_self_message_iterator *self_msg_iter, + bt_logging_level log_level, + struct ctf_fs_ds_group_medops_data **out); + +BT_HIDDEN +void ctf_fs_ds_group_medops_data_reset(struct ctf_fs_ds_group_medops_data *data); + +BT_HIDDEN +void ctf_fs_ds_group_medops_data_destroy( + struct ctf_fs_ds_group_medops_data *data); + #endif /* CTF_FS_DS_FILE_H */