1 #ifndef BABELTRACE_CTF_WRITER_UTILS_INTERNAL_H
2 #define BABELTRACE_CTF_WRITER_UTILS_INTERNAL_H
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
6 * of this software and associated documentation files (the "Software"), to deal
7 * in the Software without restriction, including without limitation the rights
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 * copies of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24 #include "common/macros.h"
25 #include <babeltrace2/ctf-writer/field-types.h>
26 #include <babeltrace2/ctf-writer/event.h>
29 #include "field-path.h"
31 #define BT_CTF_TO_COMMON(_obj) (&(_obj)->common)
32 #define BT_CTF_FROM_COMMON(_obj) ((void *) _obj)
34 struct bt_ctf_search_query
{
40 const char *bt_ctf_get_byte_order_string(enum bt_ctf_byte_order byte_order
);
43 const char *bt_ctf_field_type_id_string(enum bt_ctf_field_type_id type_id
)
46 case BT_CTF_FIELD_TYPE_ID_UNKNOWN
:
47 return "BT_CTF_FIELD_TYPE_ID_UNKNOWN";
48 case BT_CTF_FIELD_TYPE_ID_INTEGER
:
49 return "BT_CTF_FIELD_TYPE_ID_INTEGER";
50 case BT_CTF_FIELD_TYPE_ID_FLOAT
:
51 return "BT_CTF_FIELD_TYPE_ID_FLOAT";
52 case BT_CTF_FIELD_TYPE_ID_ENUM
:
53 return "BT_CTF_FIELD_TYPE_ID_ENUM";
54 case BT_CTF_FIELD_TYPE_ID_STRING
:
55 return "BT_CTF_FIELD_TYPE_ID_STRING";
56 case BT_CTF_FIELD_TYPE_ID_STRUCT
:
57 return "BT_CTF_FIELD_TYPE_ID_STRUCT";
58 case BT_CTF_FIELD_TYPE_ID_ARRAY
:
59 return "BT_CTF_FIELD_TYPE_ID_ARRAY";
60 case BT_CTF_FIELD_TYPE_ID_SEQUENCE
:
61 return "BT_CTF_FIELD_TYPE_ID_SEQUENCE";
62 case BT_CTF_FIELD_TYPE_ID_VARIANT
:
63 return "BT_CTF_FIELD_TYPE_ID_VARIANT";
70 const char *bt_ctf_byte_order_string(enum bt_ctf_byte_order bo
)
73 case BT_CTF_BYTE_ORDER_UNKNOWN
:
74 return "BT_CTF_BYTE_ORDER_UNKNOWN";
75 case BT_CTF_BYTE_ORDER_UNSPECIFIED
:
76 return "BT_CTF_BYTE_ORDER_UNSPECIFIED";
77 case BT_CTF_BYTE_ORDER_NATIVE
:
78 return "BT_CTF_BYTE_ORDER_NATIVE";
79 case BT_CTF_BYTE_ORDER_LITTLE_ENDIAN
:
80 return "BT_CTF_BYTE_ORDER_LITTLE_ENDIAN";
81 case BT_CTF_BYTE_ORDER_BIG_ENDIAN
:
82 return "BT_CTF_BYTE_ORDER_BIG_ENDIAN";
83 case BT_CTF_BYTE_ORDER_NETWORK
:
84 return "BT_CTF_BYTE_ORDER_NETWORK";
91 const char *bt_ctf_string_encoding_string(enum bt_ctf_string_encoding encoding
)
94 case BT_CTF_STRING_ENCODING_UNKNOWN
:
95 return "BT_CTF_STRING_ENCODING_UNKNOWN";
96 case BT_CTF_STRING_ENCODING_NONE
:
97 return "BT_CTF_STRING_ENCODING_NONE";
98 case BT_CTF_STRING_ENCODING_UTF8
:
99 return "BT_CTF_STRING_ENCODING_UTF8";
100 case BT_CTF_STRING_ENCODING_ASCII
:
101 return "BT_CTF_STRING_ENCODING_ASCII";
108 const char *bt_ctf_integer_base_string(enum bt_ctf_integer_base base
)
111 case BT_CTF_INTEGER_BASE_UNKNOWN
:
112 return "BT_CTF_INTEGER_BASE_UNKNOWN";
113 case BT_CTF_INTEGER_BASE_UNSPECIFIED
:
114 return "BT_CTF_INTEGER_BASE_UNSPECIFIED";
115 case BT_CTF_INTEGER_BASE_BINARY
:
116 return "BT_CTF_INTEGER_BASE_BINARY";
117 case BT_CTF_INTEGER_BASE_OCTAL
:
118 return "BT_CTF_INTEGER_BASE_OCTAL";
119 case BT_CTF_INTEGER_BASE_DECIMAL
:
120 return "BT_CTF_INTEGER_BASE_DECIMAL";
121 case BT_CTF_INTEGER_BASE_HEXADECIMAL
:
122 return "BT_CTF_INTEGER_BASE_HEXADECIMAL";
129 const char *bt_ctf_scope_string(enum bt_ctf_scope scope
)
132 case BT_CTF_SCOPE_UNKNOWN
:
133 return "BT_CTF_SCOPE_UNKNOWN";
134 case BT_CTF_SCOPE_TRACE_PACKET_HEADER
:
135 return "BT_CTF_SCOPE_TRACE_PACKET_HEADER";
136 case BT_CTF_SCOPE_STREAM_PACKET_CONTEXT
:
137 return "BT_CTF_SCOPE_STREAM_PACKET_CONTEXT";
138 case BT_CTF_SCOPE_STREAM_EVENT_HEADER
:
139 return "BT_CTF_SCOPE_STREAM_EVENT_HEADER";
140 case BT_CTF_SCOPE_STREAM_EVENT_CONTEXT
:
141 return "BT_CTF_SCOPE_STREAM_EVENT_CONTEXT";
142 case BT_CTF_SCOPE_EVENT_CONTEXT
:
143 return "BT_CTF_SCOPE_EVENT_CONTEXT";
144 case BT_CTF_SCOPE_EVENT_PAYLOAD
:
145 return "BT_CTF_SCOPE_EVENT_PAYLOAD";
146 case BT_CTF_SCOPE_ENV
:
147 return "BT_CTF_SCOPE_ENV";
154 const char *bt_ctf_event_class_log_level_string(
155 enum bt_ctf_event_class_log_level level
)
158 case BT_CTF_EVENT_CLASS_LOG_LEVEL_UNKNOWN
:
159 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_UNKNOWN";
160 case BT_CTF_EVENT_CLASS_LOG_LEVEL_UNSPECIFIED
:
161 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_UNSPECIFIED";
162 case BT_CTF_EVENT_CLASS_LOG_LEVEL_EMERGENCY
:
163 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_EMERGENCY";
164 case BT_CTF_EVENT_CLASS_LOG_LEVEL_ALERT
:
165 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_ALERT";
166 case BT_CTF_EVENT_CLASS_LOG_LEVEL_CRITICAL
:
167 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_CRITICAL";
168 case BT_CTF_EVENT_CLASS_LOG_LEVEL_ERROR
:
169 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_ERROR";
170 case BT_CTF_EVENT_CLASS_LOG_LEVEL_WARNING
:
171 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_WARNING";
172 case BT_CTF_EVENT_CLASS_LOG_LEVEL_NOTICE
:
173 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_NOTICE";
174 case BT_CTF_EVENT_CLASS_LOG_LEVEL_INFO
:
175 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_INFO";
176 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_SYSTEM
:
177 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_SYSTEM";
178 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_PROGRAM
:
179 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_PROGRAM";
180 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_PROCESS
:
181 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_PROCESS";
182 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_MODULE
:
183 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_MODULE";
184 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_UNIT
:
185 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_UNIT";
186 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_FUNCTION
:
187 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_FUNCTION";
188 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_LINE
:
189 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_LINE";
190 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG
:
191 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG";
198 GString
*bt_ctf_field_path_string(struct bt_ctf_field_path
*path
)
200 GString
*str
= g_string_new(NULL
);
209 g_string_append_printf(str
, "[%s", bt_common_scope_string(
210 bt_ctf_field_path_get_root_scope(path
)));
212 for (i
= 0; i
< bt_ctf_field_path_get_index_count(path
); i
++) {
213 int index
= bt_ctf_field_path_get_index(path
, i
);
215 g_string_append_printf(str
, ", %d", index
);
218 g_string_append(str
, "]");
224 #endif /* BABELTRACE_CTF_WRITER_UTILS_INTERNAL_H */