#include <babeltrace/graph/message-stream-beginning-const.h>
#include <babeltrace/graph/message-stream-end-const.h>
#include <babeltrace/graph/message-stream-internal.h>
-#include <babeltrace/graph/message-inactivity-internal.h>
+#include <babeltrace/graph/message-message-iterator-inactivity-internal.h>
#include <babeltrace/graph/message-discarded-items-internal.h>
#include <babeltrace/graph/message-stream-activity-internal.h>
#include <babeltrace/graph/port-const.h>
BT_ASSERT(upstream_port);
upstream_comp = bt_port_borrow_component_inline(upstream_port);
BT_ASSERT(upstream_comp);
+ BT_ASSERT_PRE(
+ bt_component_borrow_graph(upstream_comp)->config_state !=
+ BT_GRAPH_CONFIGURATION_STATE_CONFIGURING,
+ "Graph is not configured: %!+g",
+ bt_component_borrow_graph(upstream_comp));
upstream_comp_cls = upstream_comp->class;
BT_ASSERT(upstream_comp->class->type ==
BT_COMPONENT_CLASS_TYPE_SOURCE ||
"message iterator is in the wrong state: %!+i", iterator);
BT_ASSERT(iterator->upstream_component);
BT_ASSERT(iterator->upstream_component->class);
- BT_ASSERT_PRE(bt_component_borrow_graph(iterator->upstream_component)->is_configured,
+ BT_ASSERT_PRE(
+ bt_component_borrow_graph(iterator->upstream_component)->config_state !=
+ BT_GRAPH_CONFIGURATION_STATE_CONFIGURING,
"Graph is not configured: %!+g",
bt_component_borrow_graph(iterator->upstream_component));
BT_LIB_LOGD("Getting next self component input port "
BT_ASSERT_PRE_NON_NULL(count_to_user, "Message count (output)");
BT_LIB_LOGD("Getting next output port message iterator's messages: "
"%!+i", iterator);
-
- /*
- * As soon as the user calls this function, we mark the graph as
- * being definitely configured.
- */
- bt_graph_set_is_configured(iterator->graph, true);
-
graph_status = bt_graph_consume_sink_no_check(iterator->graph,
iterator->colander);
switch (graph_status) {
* member.
*/
bt_graph_set_can_consume(iterator->graph, false);
+
+ /*
+ * Also set the graph as being configured: it has no active sink
+ * anyway, so we don't need to call bt_graph_configure().
+ */
+ graph->config_state = BT_GRAPH_CONFIGURATION_STATE_CONFIGURED;
goto end;
error:
BT_ASSERT_PRE_NON_NULL(iterator, "Message iterator");
BT_ASSERT_PRE_ITER_HAS_STATE_TO_SEEK(iterator);
- BT_ASSERT_PRE(bt_component_borrow_graph(iterator->upstream_component)->is_configured,
+ BT_ASSERT_PRE(
+ bt_component_borrow_graph(iterator->upstream_component)->config_state !=
+ BT_GRAPH_CONFIGURATION_STATE_CONFIGURING,
"Graph is not configured: %!+g",
bt_component_borrow_graph(iterator->upstream_component));
BT_ASSERT_PRE_NON_NULL(iterator, "Message iterator");
BT_ASSERT_PRE_ITER_HAS_STATE_TO_SEEK(iterator);
- BT_ASSERT_PRE(bt_component_borrow_graph(iterator->upstream_component)->is_configured,
+ BT_ASSERT_PRE(
+ bt_component_borrow_graph(iterator->upstream_component)->config_state !=
+ BT_GRAPH_CONFIGURATION_STATE_CONFIGURING,
"Graph is not configured: %!+g",
bt_component_borrow_graph(iterator->upstream_component));
BT_ASSERT_PRE_NON_NULL(iterator, "Message iterator");
BT_ASSERT_PRE_ITER_HAS_STATE_TO_SEEK(iterator);
- BT_ASSERT_PRE(bt_component_borrow_graph(iterator->upstream_component)->is_configured,
+ BT_ASSERT_PRE(
+ bt_component_borrow_graph(iterator->upstream_component)->config_state !=
+ BT_GRAPH_CONFIGURATION_STATE_CONFIGURING,
"Graph is not configured: %!+g",
bt_component_borrow_graph(iterator->upstream_component));
BT_ASSERT_PRE(
clk_snapshot = event_msg->default_cs;
BT_ASSERT_PRE(clk_snapshot,
- "Event has no default clock snapshot: %!+e",
- event_msg->event);
+ "Event message has no default clock snapshot: %!+n",
+ event_msg);
break;
}
- case BT_MESSAGE_TYPE_INACTIVITY:
+ case BT_MESSAGE_TYPE_MESSAGE_ITERATOR_INACTIVITY:
{
- const struct bt_message_inactivity *inactivity_msg =
+ const struct bt_message_message_iterator_inactivity *inactivity_msg =
(const void *) msg;
clk_snapshot = inactivity_msg->default_cs;
}
case BT_MESSAGE_TYPE_PACKET_BEGINNING:
case BT_MESSAGE_TYPE_PACKET_END:
- /* Ignore */
- goto end;
+ {
+ const struct bt_message_packet *packet_msg =
+ (const void *) msg;
+
+ clk_snapshot = packet_msg->default_cs;
+ BT_ASSERT_PRE(clk_snapshot,
+ "Packet message has no default clock snapshot: %!+n",
+ packet_msg);
+ break;
+ }
case BT_MESSAGE_TYPE_DISCARDED_EVENTS:
case BT_MESSAGE_TYPE_DISCARDED_PACKETS:
{
* Find first message which has a default clock snapshot
* that is greater than or equal to the requested value.
*
- * For event and inactivity messages, compare with the
+ * For event and message iterator inactivity messages, compare with the
* default clock snapshot.
*
* For packet beginning messages, compare with the
BT_ASSERT_PRE_NON_NULL(iterator, "Message iterator");
BT_ASSERT_PRE_ITER_HAS_STATE_TO_SEEK(iterator);
- BT_ASSERT_PRE(bt_component_borrow_graph(iterator->upstream_component)->is_configured,
+ BT_ASSERT_PRE(
+ bt_component_borrow_graph(iterator->upstream_component)->config_state !=
+ BT_GRAPH_CONFIGURATION_STATE_CONFIGURING,
"Graph is not configured: %!+g",
bt_component_borrow_graph(iterator->upstream_component));
BT_ASSERT_PRE(