#include <babeltrace2/babeltrace.h>
+#include "cpp-common/bt2c/glib-up.hpp"
+#include "cpp-common/bt2c/logging.hpp"
+
#include "metadata.hpp"
+#include "plugins/ctf/common/src/metadata/tsdl/decoder.hpp"
extern bool ctf_fs_debug;
struct ctf_fs_file
{
- bt_logging_level log_level = (bt_logging_level) 0;
+ explicit ctf_fs_file(const bt2c::Logger& parentLogger) :
+ logger {parentLogger, "PLUGIN/SRC.CTF.FS/FILE"}
+ {
+ }
- /* Weak */
- bt_self_component *self_comp = nullptr;
+ bt2c::Logger logger;
/* Owned by this */
GString *path = nullptr;
struct ctf_fs_metadata
{
/* Owned by this */
- struct ctf_metadata_decoder *decoder = nullptr;
+ ctf_metadata_decoder_up decoder;
/* Owned by this */
bt_trace_class *trace_class = nullptr;
int bo = 0;
};
+struct ctf_fs_component_deleter
+{
+ void operator()(struct ctf_fs_component *);
+};
+
struct ctf_fs_component
{
- bt_logging_level log_level = (bt_logging_level) 0;
+ using UP = std::unique_ptr<ctf_fs_component, ctf_fs_component_deleter>;
+
+ explicit ctf_fs_component(const bt2c::Logger& parentLogger) :
+ logger {parentLogger, "PLUGIN/SRC.CTF.FS/COMP"}
+ {
+ }
+
+ bt2c::Logger logger;
/* Array of struct ctf_fs_port_data *, owned by this */
GPtrArray *port_data = nullptr;
/* Owned by this */
struct ctf_fs_trace *trace = nullptr;
- struct ctf_fs_metadata_config metadata_config;
+ ctf::src::ClkClsCfg clkClsCfg;
};
struct ctf_fs_trace
{
- bt_logging_level log_level = (bt_logging_level) 0;
+ explicit ctf_fs_trace(const bt2c::Logger& parentLogger) :
+ logger {parentLogger, "PLUGIN/SRC.CTF.FS/TRACE"}
+ {
+ }
- /*
- * Weak. These are mostly used to generate log messages or to append
- * error causes. They are mutually exclusive, only one of them must be
- * set.
- */
- bt_self_component *self_comp = nullptr;
- bt_self_component_class *self_comp_class = nullptr;
+ bt2c::Logger logger;
/* Owned by this */
struct ctf_fs_metadata *metadata = nullptr;
struct ctf_fs_msg_iter_data
{
- bt_logging_level log_level = (bt_logging_level) 0;
-
- /* Weak */
- bt_self_component *self_comp = nullptr;
+ explicit ctf_fs_msg_iter_data(bt_self_message_iterator *selfMsgIter) :
+ self_msg_iter {selfMsgIter}, logger {bt2::SelfMessageIterator {self_msg_iter},
+ "PLUGIN/SRC.CTF.FS/MSG-ITER"}
+ {
+ }
/* Weak */
bt_self_message_iterator *self_msg_iter = nullptr;
+ bt2c::Logger logger;
+
/* Weak, belongs to ctf_fs_trace */
struct ctf_fs_ds_file_group *ds_file_group = nullptr;
/* Create and initialize a new, empty ctf_fs_component. */
-struct ctf_fs_component *ctf_fs_component_create(bt_logging_level log_level);
+ctf_fs_component::UP ctf_fs_component_create(const bt2c::Logger& parentLogger);
/*
* Create one `struct ctf_fs_trace` from one trace, or multiple traces sharing
int ctf_fs_component_create_ctf_fs_trace(struct ctf_fs_component *ctf_fs,
const bt_value *paths_value,
const bt_value *trace_name_value,
- bt_self_component *self_comp,
- bt_self_component_class *self_comp_class);
+ bt_self_component *selfComp);
/* Free `ctf_fs` and everything it owns. */
*/
bool read_src_fs_parameters(const bt_value *params, const bt_value **paths,
- const bt_value **trace_name, struct ctf_fs_component *ctf_fs,
- bt_self_component *self_comp, bt_self_component_class *self_comp_class);
+ const bt_value **trace_name, struct ctf_fs_component *ctf_fs);
/*
* Generate the port name to be used for a given data stream file group.
- *
- * The result must be freed using g_free by the caller.
*/
-gchar *ctf_fs_make_port_name(struct ctf_fs_ds_file_group *ds_file_group);
+bt2c::GCharUP ctf_fs_make_port_name(struct ctf_fs_ds_file_group *ds_file_group);
#endif /* BABELTRACE_PLUGIN_CTF_FS_H */