X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fplugins%2Fctf%2Ffs-src%2Fdata-stream-file.h;h=f033dab94f5931d18a71313d64ece928bfe2fd47;hb=60c851f7f3c44d2963f70479903c97260d98270c;hp=d3ad00ffaca3d8e10f6f630d3a91ee7f5f207536;hpb=85e7137bc3a69800efca39a38eea8deb4816d4a9;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 d3ad00ff..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. */ @@ -48,11 +50,16 @@ struct ctf_fs_ds_file_info { struct ctf_fs_metadata; struct ctf_fs_ds_file { + bt_logging_level log_level; + /* Weak */ - struct ctf_fs_metadata *metadata; + bt_self_component *self_comp; /* Weak */ - bt_self_message_iterator *pc_msg_iter; + bt_self_message_iterator *self_msg_iter; + + /* Weak */ + struct ctf_fs_metadata *metadata; /* Owned by this */ struct ctf_fs_file *file; @@ -60,9 +67,6 @@ struct ctf_fs_ds_file { /* Owned by this */ bt_stream *stream; - /* Weak */ - struct bt_msg_iter *msg_iter; - void *mmap_addr; /* @@ -75,42 +79,68 @@ 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 *pc_msg_iter, - struct bt_msg_iter *msg_iter, - bt_stream *stream, const char *path); + bt_self_message_iterator *self_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_self_message_iterator_status ctf_fs_ds_file_next( +struct ctf_fs_ds_index *ctf_fs_ds_file_build_index( struct ctf_fs_ds_file *ds_file, - bt_message **msg); + 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_file_build_index( - struct ctf_fs_ds_file *ds_file); +struct ctf_fs_ds_index *ctf_fs_ds_index_create(bt_logging_level log_level, + bt_self_component *self_comp); BT_HIDDEN -struct ctf_fs_ds_index *ctf_fs_ds_index_create(); +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 -void ctf_fs_ds_index_destroy(struct ctf_fs_ds_index *index); +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); -extern struct bt_msg_iter_medium_ops ctf_fs_ds_file_medops; +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 */