* SOFTWARE.
*/
+#define BT_LOG_TAG "PLUGIN-UTILS-TRIMMER-FLT-COPY"
+#include "logging.h"
+
+#include <assert.h>
#include <babeltrace/ctf-ir/event.h>
#include <babeltrace/ctf-ir/packet.h>
#include <babeltrace/ctf-ir/event-class.h>
struct bt_ctf_packet *writer_packet = NULL;
int ret;
+ BT_LOGD_STR("Inserting a new packet.");
writer_packet = bt_ctf_packet_create(stream);
if (!writer_packet) {
- fprintf(trim_it->err, "[error] %s in %s:%d\n", __func__,
- __FILE__, __LINE__);
+ BT_LOGE_STR("Failed to create a new packet.");
goto error;
}
ret = ctf_packet_copy_header(trim_it->err, packet, writer_packet);
if (ret) {
- fprintf(trim_it->err, "[error] %s in %s:%d\n", __func__,
- __FILE__, __LINE__);
+ BT_LOGE_STR("Failed to copy packet header.");
goto error;
}
struct bt_ctf_field *field = NULL, *writer_field = NULL;
int nr_fields, i, int_ret;
+ BT_LOGD("Updating packet context field: name=%s", name);
packet_context = bt_ctf_packet_get_context(writer_packet);
- if (!packet_context) {
- fprintf(err, "[error] %s in %s:%d\n", __func__, __FILE__,
- __LINE__);
- goto error;
- }
+ assert(packet_context);
struct_type = bt_ctf_field_get_type(packet_context);
- if (!struct_type) {
- fprintf(err, "[error] %s in %s:%d\n", __func__, __FILE__,
- __LINE__);
- goto error;
- }
+ assert(struct_type);
writer_packet_context = bt_ctf_packet_get_context(writer_packet);
- if (!writer_packet_context) {
- fprintf(err, "[error] %s in %s:%d\n", __func__, __FILE__,
- __LINE__);
- goto error;
- }
+ assert(writer_packet_context);
nr_fields = bt_ctf_field_type_structure_get_field_count(struct_type);
for (i = 0; i < nr_fields; i++) {
field = bt_ctf_field_structure_get_field_by_index(
packet_context, i);
if (!field) {
- fprintf(err, "[error] %s in %s:%d\n", __func__,
- __FILE__, __LINE__);
+ BT_LOGE("Failed to get field in packet-context: field-name=\"%s\"",
+ name);
goto error;
}
if (bt_ctf_field_type_structure_get_field(struct_type,
&field_name, &field_type, i) < 0) {
- fprintf(err, "[error] %s in %s:%d\n", __func__,
- __FILE__, __LINE__);
+ BT_LOGE("Failed to get field: field-name=\"%s\"",
+ field_name);
goto error;
}
if (strcmp(field_name, name)) {
BT_PUT(field);
continue;
}
- if (bt_ctf_field_type_get_type_id(field_type) != BT_CTF_FIELD_TYPE_ID_INTEGER) {
- fprintf(err, "[error] Unexpected packet context field type\n");
+ if (bt_ctf_field_type_get_type_id(field_type) !=
+ BT_CTF_FIELD_TYPE_ID_INTEGER) {
+ BT_LOGE("Expecting an integer for this field: field-name=\"%s\"",
+ name);
goto error;
}
+
writer_field = bt_ctf_field_structure_get_field(writer_packet_context,
field_name);
- if (!writer_field) {
- fprintf(err, "[error] %s in %s:%d\n", __func__, __FILE__,
- __LINE__);
- goto error;
- }
+ assert(writer_field);
int_ret = bt_ctf_field_unsigned_integer_set_value(writer_field, value);
- if (int_ret < 0) {
- fprintf(err, "[error] %s in %s:%d\n", __func__, __FILE__,
- __LINE__);
- goto error;
- }
+ assert(int_ret == 0);
+
BT_PUT(writer_field);
BT_PUT(field_type);
BT_PUT(field);
int int_ret;
stream = bt_ctf_packet_get_stream(packet);
- if (!stream) {
- fprintf(trim_it->err, "[error] %s in %s:%d\n",
- __func__, __FILE__, __LINE__);
- goto error;
- }
+ assert(stream);
/*
* If a packet was already opened, close it and remove it from
writer_packet = insert_new_packet(trim_it, packet, stream);
if (!writer_packet) {
- fprintf(trim_it->err, "[error] %s in %s:%d\n",
- __func__, __FILE__, __LINE__);
+ BT_LOGE_STR("Failed to insert new packet.");
goto error;
}
bt_get(writer_packet);
int_ret = ctf_packet_copy_context(trim_it->err, packet,
stream, writer_packet);
if (int_ret < 0) {
- fprintf(trim_it->err, "[error] %s in %s:%d\n",
- __func__, __FILE__, __LINE__);
+ BT_LOGE_STR("Failed to copy packet context.");
goto error;
}
writer_packet = lookup_packet(trim_it, packet);
if (!writer_packet) {
- fprintf(trim_it->err, "[error] %s in %s:%d\n", __func__,
- __FILE__, __LINE__);
+ BT_LOGE_STR("Failed to find existing packet.");
goto end;
}
int int_ret;
event_class = bt_ctf_event_get_class(event);
- if (!event_class) {
- fprintf(trim_it->err, "[error] %s in %s:%d\n", __func__,
- __FILE__, __LINE__);
- goto error;
- }
+ assert(event_class);
event_name = bt_ctf_event_class_get_name(event_class);
- if (!event_name) {
- fprintf(trim_it->err, "[error] %s in %s:%d\n", __func__,
- __FILE__, __LINE__);
- goto error;
- }
writer_event = ctf_copy_event(trim_it->err, event, event_class, false);
if (!writer_event) {
- fprintf(trim_it->err, "[error] %s in %s:%d\n", __func__,
- __FILE__, __LINE__);
- fprintf(trim_it->err, "[error] Failed to copy event %s\n",
- bt_ctf_event_class_get_name(event_class));
+ BT_LOGE("Failed to copy event: event-class-name=\"%s\", event-name=\"%s\"",
+ bt_ctf_event_class_get_name(event_class),
+ event_name);
goto error;
}
packet = bt_ctf_event_get_packet(event);
- if (!packet) {
- fprintf(trim_it->err, "[error] %s in %s:%d\n", __func__,
- __FILE__, __LINE__);
- goto error;
- }
+ assert(packet);
writer_packet = lookup_packet(trim_it, packet);
if (!writer_packet) {
- fprintf(trim_it->err, "[error] %s in %s:%d\n", __func__,
- __FILE__, __LINE__);
+ BT_LOGE_STR("Failed to find existing packet.");
goto error;
}
bt_get(writer_packet);
int_ret = bt_ctf_event_set_packet(writer_event, writer_packet);
if (int_ret < 0) {
- fprintf(trim_it->err, "[error] %s in %s:%d\n", __func__,
- __FILE__, __LINE__);
- fprintf(trim_it->err, "[error] Failed to append event %s\n",
- bt_ctf_event_class_get_name(event_class));
+ BT_LOGE("Failed to append event: event-class-name=\"%s\", event-name=\"%s\"",
+ bt_ctf_event_class_get_name(event_class),
+ event_name);
goto error;
}
if (bound->lazy_values.gmt) {
/* Get day, month, year. */
if (!bt_gmtime_r(&timeval, &tm)) {
- BT_LOGE_STR("Failure in bt_gmtime_r()");
+ BT_LOGE_STR("Failure in bt_gmtime_r().");
goto error;
}
tm.tm_sec = bound->lazy_values.ss;
} else {
/* Get day, month, year. */
if (!bt_localtime_r(&timeval, &tm)) {
- BT_LOGE_STR("Failure in bt_localtime_r()");
+ BT_LOGE_STR("Failure in bt_localtime_r().");
goto error;
}
tm.tm_sec = bound->lazy_values.ss;
clock_value = bt_ctf_event_get_clock_value(event, clock_class);
if (!clock_value) {
- BT_LOGE_STR("Failed to retrieve clock value");
+ BT_LOGE_STR("Failed to retrieve clock value.");
goto error;
}
clock_ret = bt_ctf_clock_value_get_value_ns_from_epoch(
clock_value, &ts);
if (clock_ret) {
- BT_LOGE_STR("Failed to retrieve clock value timestamp");
+ BT_LOGE_STR("Failed to retrieve clock value timestamp.");
goto error;
}
if (update_lazy_bound(begin, "begin", ts, &lazy_update)) {
}
if (lazy_update && begin->set && end->set) {
if (begin->value > end->value) {
- BT_LOGE_STR("Unexpected: time range begin value is above end value");
+ BT_LOGE_STR("Unexpected: time range begin value is above end value.");
goto error;
}
}
}
if (lazy_update && begin->set && end->set) {
if (begin->value > end->value) {
- BT_LOGE_STR("Unexpected: time range begin value is above end value");
+ BT_LOGE_STR("Unexpected: time range begin value is above end value.");
goto end_no_notif;
}
}