/*
- * packet.c
- *
- * Babeltrace trace IR - Stream packet
- *
* Copyright 2016 Philippe Proulx <pproulx@efficios.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
#include <babeltrace/assert-pre-internal.h>
#include <babeltrace/trace-ir/fields-internal.h>
+#include <babeltrace/trace-ir/private-packet.h>
#include <babeltrace/trace-ir/packet.h>
#include <babeltrace/trace-ir/packet-internal.h>
#include <babeltrace/trace-ir/field-wrapper-internal.h>
return packet->stream;
}
+struct bt_private_stream *bt_private_packet_borrow_stream(
+ struct bt_private_packet *packet)
+{
+ return (void *) bt_packet_borrow_stream((void *) packet);
+}
+
struct bt_field *bt_packet_borrow_header_field(struct bt_packet *packet)
{
BT_ASSERT_PRE_NON_NULL(packet, "Packet");
return packet->header_field ? packet->header_field->field : NULL;
}
+struct bt_private_field *bt_private_packet_borrow_header_field(
+ struct bt_private_packet *packet)
+{
+ return (void *) bt_packet_borrow_header_field((void *) packet);
+}
+
struct bt_field *bt_packet_borrow_context_field(struct bt_packet *packet)
{
BT_ASSERT_PRE_NON_NULL(packet, "Packet");
return packet->context_field ? packet->context_field->field : NULL;
}
+struct bt_private_field *bt_private_packet_borrow_context_field(
+ struct bt_private_packet *packet)
+{
+ return (void *) bt_packet_borrow_context_field((void *) packet);
+}
+
BT_HIDDEN
void _bt_packet_set_is_frozen(struct bt_packet *packet, bool is_frozen)
{
} else {
bt_field_wrapper_destroy(packet->header_field);
}
+
+ packet->header_field = NULL;
}
if (packet->context_field) {
} else {
bt_field_wrapper_destroy(packet->context_field);
}
+
+ packet->context_field = NULL;
}
if (packet->default_beginning_cv) {
BT_LOGD_STR("Recycling beginning clock value.");
bt_clock_value_recycle(packet->default_beginning_cv);
+ packet->default_beginning_cv = NULL;
}
if (packet->default_end_cv) {
BT_LOGD_STR("Recycling end clock value.");
bt_clock_value_recycle(packet->default_end_cv);
+ packet->default_end_cv = NULL;
}
BT_LOGD_STR("Putting packet's stream.");
- bt_object_put_ref(packet->stream);
+ BT_OBJECT_PUT_REF_AND_RESET(packet->stream);
g_free(packet);
}
bt_object_init_shared(&packet->base,
(bt_object_release_func) bt_packet_recycle);
- packet->stream = bt_object_get_ref(stream);
+ packet->stream = stream;
+ bt_object_get_no_null_check(stream);
trace = bt_stream_class_borrow_trace_inline(stream->class);
BT_ASSERT(trace);
return packet;
}
-struct bt_packet *bt_packet_create(struct bt_stream *stream)
+struct bt_private_packet *bt_private_packet_create(
+ struct bt_private_stream *priv_stream)
{
+ struct bt_stream *stream = (void *) priv_stream;
struct bt_packet *packet = NULL;
BT_ASSERT_PRE_NON_NULL(stream, "Stream");
}
end:
- return packet;
+ return (void *) packet;
}
-int bt_packet_move_header_field(struct bt_packet *packet,
- struct bt_packet_header_field *header_field)
+int bt_private_packet_move_header_field(
+ struct bt_private_packet *priv_packet,
+ struct bt_private_packet_header_field *header_field)
{
+ struct bt_packet *packet = (void *) priv_packet;
struct bt_trace *trace;
struct bt_field_wrapper *field_wrapper = (void *) header_field;
return 0;
}
-int bt_packet_move_context_field(struct bt_packet *packet,
- struct bt_packet_context_field *context_field)
+int bt_private_packet_move_context_field(
+ struct bt_private_packet *priv_packet,
+ struct bt_private_packet_context_field *context_field)
{
+ struct bt_packet *packet = (void *) priv_packet;
struct bt_stream_class *stream_class;
struct bt_field_wrapper *field_wrapper = (void *) context_field;
return 0;
}
-int bt_packet_set_default_beginning_clock_value(struct bt_packet *packet,
+void bt_private_packet_set_default_beginning_clock_value(
+ struct bt_private_packet *priv_packet,
uint64_t value_cycles)
{
+ struct bt_packet *packet = (void *) priv_packet;
struct bt_stream_class *sc;
BT_ASSERT_PRE_NON_NULL(packet, "Packet");
"no default beginning clock value: %![packet-]+a, %![sc-]+S",
packet, sc);
BT_ASSERT(packet->default_beginning_cv);
- bt_clock_value_set_value_inline(packet->default_beginning_cv, value_cycles);
+ bt_clock_value_set_value_inline(packet->default_beginning_cv,
+ value_cycles);
BT_LIB_LOGV("Set packet's default beginning clock value: "
- "%![packet-]+a, value=%" PRIu64, value_cycles);
- return 0;
+ "%![packet-]+a, value=%" PRIu64, packet, value_cycles);
}
enum bt_clock_value_status bt_packet_borrow_default_beginning_clock_value(
return BT_CLOCK_VALUE_STATUS_KNOWN;
}
-int bt_packet_set_default_end_clock_value(struct bt_packet *packet,
+void bt_private_packet_set_default_end_clock_value(
+ struct bt_private_packet *priv_packet,
uint64_t value_cycles)
{
+ struct bt_packet *packet = (void *) priv_packet;
struct bt_stream_class *sc;
BT_ASSERT_PRE_NON_NULL(packet, "Packet");
BT_ASSERT(packet->default_end_cv);
bt_clock_value_set_value_inline(packet->default_end_cv, value_cycles);
BT_LIB_LOGV("Set packet's default end clock value: "
- "%![packet-]+a, value=%" PRIu64, value_cycles);
- return 0;
+ "%![packet-]+a, value=%" PRIu64, packet, value_cycles);
}
enum bt_clock_value_status bt_packet_borrow_default_end_clock_value(
return packet->discarded_event_counter_snapshot.base.avail;
}
-int bt_packet_set_discarded_event_counter_snapshot(struct bt_packet *packet,
- uint64_t value)
+void bt_private_packet_set_discarded_event_counter_snapshot(
+ struct bt_private_packet *priv_packet, uint64_t value)
{
+ struct bt_packet *packet = (void *) priv_packet;
+
BT_ASSERT_PRE_NON_NULL(packet, "Packet");
BT_ASSERT_PRE_PACKET_HOT(packet);
BT_ASSERT_PRE(packet->stream->class->packets_have_discarded_event_counter_snapshot,
"Packet's stream's discarded event counter is not enabled: "
"%![packet-]+a", packet);
bt_property_uint_set(&packet->discarded_event_counter_snapshot, value);
- return 0;
}
enum bt_property_availability bt_packet_get_packet_counter_snapshot(
return packet->packet_counter_snapshot.base.avail;
}
-int bt_packet_set_packet_counter_snapshot(struct bt_packet *packet,
- uint64_t value)
+void bt_private_packet_set_packet_counter_snapshot(
+ struct bt_private_packet *priv_packet, uint64_t value)
{
+ struct bt_packet *packet = (void *) priv_packet;
+
BT_ASSERT_PRE_NON_NULL(packet, "Packet");
BT_ASSERT_PRE_PACKET_HOT(packet);
BT_ASSERT_PRE(packet->stream->class->packets_have_packet_counter_snapshot,
"Packet's stream's packet counter is not enabled: "
"%![packet-]+a", packet);
bt_property_uint_set(&packet->packet_counter_snapshot, value);
- return 0;
}