* SOFTWARE.
*/
+#define BT_LOG_TAG "PLUGIN-UTILS-TRIMMER-FLT-ITER"
+#include "logging.h"
+
#include <babeltrace/compat/time-internal.h>
+#include <babeltrace/compat/utc-internal.h>
#include <babeltrace/graph/notification-iterator.h>
-#include <babeltrace/graph/private-notification-iterator.h>
+#include <babeltrace/graph/private-connection-private-notification-iterator.h>
#include <babeltrace/graph/notification.h>
#include <babeltrace/graph/notification-event.h>
#include <babeltrace/graph/notification-stream.h>
#include <babeltrace/graph/private-port.h>
#include <babeltrace/graph/private-connection.h>
#include <babeltrace/graph/private-component.h>
+#include <babeltrace/graph/connection.h>
#include <babeltrace/ctf-ir/event.h>
#include <babeltrace/ctf-ir/stream.h>
#include <babeltrace/ctf-ir/stream-class.h>
}
BT_HIDDEN
-void trimmer_iterator_finalize(struct bt_private_notification_iterator *it)
+void trimmer_iterator_finalize(struct bt_private_connection_private_notification_iterator *it)
{
struct trimmer_iterator *trim_it;
- trim_it = bt_private_notification_iterator_get_user_data(it);
+ trim_it = bt_private_connection_private_notification_iterator_get_user_data(it);
assert(trim_it);
bt_put(trim_it->input_iterator);
BT_HIDDEN
enum bt_notification_iterator_status trimmer_iterator_init(
- struct bt_private_notification_iterator *iterator,
+ struct bt_private_connection_private_notification_iterator *iterator,
struct bt_private_port *port)
{
enum bt_notification_iterator_status ret =
BT_NOTIFICATION_ITERATOR_STATUS_OK;
enum bt_notification_iterator_status it_ret;
+ enum bt_connection_status conn_status;
struct bt_private_port *input_port = NULL;
struct bt_private_connection *connection = NULL;
struct bt_private_component *component =
- bt_private_notification_iterator_get_private_component(iterator);
+ bt_private_connection_private_notification_iterator_get_private_component(iterator);
struct trimmer_iterator *it_data = g_new0(struct trimmer_iterator, 1);
static const enum bt_notification_type notif_types[] = {
BT_NOTIFICATION_TYPE_EVENT,
connection = bt_private_port_get_private_connection(input_port);
assert(connection);
- it_data->input_iterator =
- bt_private_connection_create_notification_iterator(connection,
- notif_types);
- if (!it_data->input_iterator) {
- ret = BT_NOTIFICATION_ITERATOR_STATUS_NOMEM;
+ conn_status = bt_private_connection_create_notification_iterator(connection,
+ notif_types, &it_data->input_iterator);
+ if (conn_status != BT_CONNECTION_STATUS_OK) {
+ ret = BT_NOTIFICATION_ITERATOR_STATUS_ERROR;
goto end;
}
it_data->packet_map = g_hash_table_new_full(g_direct_hash,
g_direct_equal, NULL, NULL);
- it_ret = bt_private_notification_iterator_set_user_data(iterator,
+ it_ret = bt_private_connection_private_notification_iterator_set_user_data(iterator,
it_data);
if (it_ret) {
goto end;
if (bound->lazy_values.gmt) {
/* Get day, month, year. */
if (!bt_gmtime_r(&timeval, &tm)) {
- printf_error("Failure in bt_gmtime_r()");
+ BT_LOGE_STR("Failure in bt_gmtime_r().");
goto error;
}
tm.tm_sec = bound->lazy_values.ss;
tm.tm_min = bound->lazy_values.mm;
tm.tm_hour = bound->lazy_values.hh;
- timeval = timegm(&tm);
+ timeval = bt_timegm(&tm);
if (timeval < 0) {
- printf_error("Failure in timegm(), incorrectly formatted %s timestamp",
+ BT_LOGE("Failure in bt_timegm(), incorrectly formatted %s timestamp",
name);
goto error;
}
} else {
/* Get day, month, year. */
if (!bt_localtime_r(&timeval, &tm)) {
- printf_error("Failure in bt_localtime_r()");
+ BT_LOGE_STR("Failure in bt_localtime_r().");
goto error;
}
tm.tm_sec = bound->lazy_values.ss;
tm.tm_hour = bound->lazy_values.hh;
timeval = mktime(&tm);
if (timeval < 0) {
- printf_error("Failure in mktime(), incorrectly formatted %s timestamp",
+ BT_LOGE("Failure in mktime(), incorrectly formatted %s timestamp",
name);
goto error;
}
clock_value = bt_ctf_event_get_clock_value(event, clock_class);
if (!clock_value) {
- printf_error("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) {
- printf_error("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) {
- printf_error("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) {
- printf_error("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;
}
}
}
BT_HIDDEN
-struct bt_notification_iterator_next_return trimmer_iterator_next(
- struct bt_private_notification_iterator *iterator)
+struct bt_notification_iterator_next_method_return trimmer_iterator_next(
+ struct bt_private_connection_private_notification_iterator *iterator)
{
struct trimmer_iterator *trim_it = NULL;
struct bt_private_component *component = NULL;
struct trimmer *trimmer = NULL;
struct bt_notification_iterator *source_it = NULL;
- struct bt_notification_iterator_next_return ret = {
+ struct bt_notification_iterator_next_method_return ret = {
.status = BT_NOTIFICATION_ITERATOR_STATUS_OK,
.notification = NULL,
};
bool notification_in_range = false;
- trim_it = bt_private_notification_iterator_get_user_data(iterator);
+ trim_it = bt_private_connection_private_notification_iterator_get_user_data(iterator);
assert(trim_it);
- component = bt_private_notification_iterator_get_private_component(
+ component = bt_private_connection_private_notification_iterator_get_private_component(
iterator);
assert(component);
trimmer = bt_private_component_get_user_data(component);
bt_put(component);
return ret;
}
-
-BT_HIDDEN
-enum bt_notification_iterator_status trimmer_iterator_seek_time(
- struct bt_private_notification_iterator *iterator,
- int64_t time)
-{
- return BT_NOTIFICATION_ITERATOR_STATUS_OK;
-}