bt2c::Logger: remove unused cLevel() method
[babeltrace.git] / src / bindings / python / bt2 / bt2 / native_bt_message_iterator.i.h
1 /*
2 * SPDX-License-Identifier: MIT
3 *
4 * Copyright (c) 2017 Philippe Proulx <pproulx@efficios.com>
5 */
6
7 static
8 bt_message_iterator_create_from_message_iterator_status
9 bt_bt2_message_iterator_create_from_message_iterator(
10 bt_self_message_iterator *self_msg_iter,
11 bt_self_component_port_input *input_port,
12 bt_message_iterator **message_iterator)
13 {
14 bt_message_iterator_create_from_message_iterator_status
15 status;
16
17 status = bt_message_iterator_create_from_message_iterator(
18 self_msg_iter, input_port, message_iterator);
19
20 if (status != BT_MESSAGE_ITERATOR_CREATE_FROM_MESSAGE_ITERATOR_STATUS_OK) {
21 *message_iterator = NULL;
22 }
23
24 return status;
25 }
26
27 static
28 bt_message_iterator_create_from_sink_component_status
29 bt_bt2_message_iterator_create_from_sink_component(
30 bt_self_component_sink *self_comp,
31 bt_self_component_port_input *input_port,
32 bt_message_iterator **message_iterator)
33 {
34 bt_message_iterator_create_from_sink_component_status
35 status;
36
37 status = bt_message_iterator_create_from_sink_component(
38 self_comp, input_port, message_iterator);
39
40 if (status != BT_MESSAGE_ITERATOR_CREATE_FROM_SINK_COMPONENT_STATUS_OK) {
41 *message_iterator = NULL;
42 }
43
44 return status;
45 }
46
47 static PyObject *bt_bt2_get_user_component_from_user_msg_iter(
48 bt_self_message_iterator *self_message_iterator)
49 {
50 bt_self_component *self_component = bt_self_message_iterator_borrow_component(self_message_iterator);
51 PyObject *py_comp;
52
53 BT_ASSERT_DBG(self_component);
54 py_comp = bt_self_component_get_data(self_component);
55 BT_ASSERT_DBG(py_comp);
56
57 /* Return new reference */
58 Py_INCREF(py_comp);
59 return py_comp;
60 }
61
62 static inline
63 PyObject *create_pylist_from_messages(bt_message_array_const messages,
64 uint64_t message_count)
65 {
66 uint64_t i;
67 PyObject *py_msg_list = PyList_New(message_count);
68
69 BT_ASSERT(py_msg_list);
70
71 for (i = 0; i < message_count; i++) {
72 PyList_SET_ITEM(py_msg_list, i,
73 SWIG_NewPointerObj(SWIG_as_voidptr(messages[i]),
74 SWIGTYPE_p_bt_message, 0));
75 }
76
77 return py_msg_list;
78 }
79
80 static
81 PyObject *get_msg_range_common(bt_message_iterator_next_status status,
82 bt_message_array_const messages, uint64_t message_count)
83 {
84 PyObject *py_status;
85 PyObject *py_return_tuple;
86 PyObject *py_msg_list;
87
88 py_return_tuple = PyTuple_New(2);
89 BT_ASSERT(py_return_tuple);
90
91 /* Set tuple[0], status. */
92 py_status = SWIG_From_long_SS_long(status);
93 PyTuple_SET_ITEM(py_return_tuple, 0, py_status);
94
95 /* Set tuple[1], message list on success, None otherwise. */
96 if (status == __BT_FUNC_STATUS_OK) {
97 py_msg_list = create_pylist_from_messages(messages, message_count);
98 } else {
99 py_msg_list = Py_None;
100 Py_INCREF(py_msg_list);
101 }
102
103 PyTuple_SET_ITEM(py_return_tuple, 1, py_msg_list);
104
105 return py_return_tuple;
106 }
107
108 static PyObject *bt_bt2_self_component_port_input_get_msg_range(
109 bt_message_iterator *iter)
110 {
111 bt_message_array_const messages;
112 uint64_t message_count = 0;
113 bt_message_iterator_next_status status;
114
115 status = bt_message_iterator_next(iter,
116 &messages, &message_count);
117 return get_msg_range_common(status, messages, message_count);
118 }
This page took 0.032254 seconds and 5 git commands to generate.