+
All the source components, <<comp-create-expl,explicit>> and
<<comp-create-impl,implicit>>, must have classes which support the
-`trace-info` query object to use this option. The only Babeltrace
-project's component class which supports this query object is
+`babeltrace.trace-info` query object to use this option. The only
+Babeltrace project's component class which supports this query object is
compcls:source.ctf.fs.
+
Because it is not possible to replicate with a single
====
[role="term"]
----
-$ babeltrace2 query src.ctf.fs trace-info \
- --params='path="/path/to/trace"'
+$ babeltrace2 query src.ctf.fs babeltrace.trace-info \
+ --params='path="/path/to/trace"'
----
====
True if the metadata stream is packetized.
-`trace-info`
-~~~~~~~~~~~~
-You can query the `trace-info` object for a set of CTF traces to get
-information about the data streams they contain, their intersection time
-range, and more.
+`babeltrace.trace-info`
+~~~~~~~~~~~~~~~~~~~~~~~
+You can query the `babeltrace.trace-info` object for a set of CTF traces
+to get information about the data streams they contain, their
+intersection time range, and more.
This query object requires that the processed CTF traces have the
`timestamp_begin` and `timestamp_end` fields in their packet context
params = {'inputs': inputs}
- # query the port's component for the `trace-info` object which
- # contains the stream intersection range for each exposed
- # trace
+ # query the port's component for the `babeltrace.trace-info`
+ # object which contains the stream intersection range for each
+ # exposed trace
query_exec = bt2.QueryExecutor()
trace_info_res = query_exec.query(
- src_comp_and_spec.comp.cls, 'trace-info', params
+ src_comp_and_spec.comp.cls, 'babeltrace.trace-info', params
)
begin = None
end = None
break;
case OPT_STREAM_INTERSECTION:
/*
- * Applies to all traces implementing the trace-info
- * query.
+ * Applies to all traces implementing the
+ * babeltrace.trace-info query.
*/
stream_intersection_mode = true;
break;
/* Accept signed integer as a convenience for "return 0" or "return 1" in Python. */
*weight = bt_value_integer_signed_get(weight_value);
} else {
- BT_LOGW("support-info query: unexpected type for weight: "
+ BT_LOGW("babeltrace.support-info query: unexpected type for weight: "
"component-class-name=source.%s.%s, input=%s, input-type=%s, "
"expected-entry-type=%s, actual-entry-type=%s",
plugin_name, source_cc_name, input, input_type,
}
if (*weight < 0.0 || *weight > 1.0) {
- BT_LOGW("support-info query: weight value is out of range [0.0, 1.0]: "
+ BT_LOGW("babeltrace.support-info query: weight value is out of range [0.0, 1.0]: "
"component-class-name=source.%s.%s, input=%s, input-type=%s, "
"weight=%f",
plugin_name, source_cc_name, input, input_type, *weight);
continue;
}
- BT_LOGD("support-info query: before: component-class-name=source.%s.%s, input=%s, "
+ BT_LOGD("babeltrace.support-info query: before: component-class-name=source.%s.%s, input=%s, "
"type=%s", plugin_name, source_cc_name, input, input_type);
BT_VALUE_PUT_REF_AND_RESET(query_result);
- query_status = bt_query_executor_query(query_executor, cc, "support-info",
+ query_status = bt_query_executor_query(query_executor, cc, "babeltrace.support-info",
query_params, log_level, &query_result);
if (query_status == BT_QUERY_EXECUTOR_QUERY_STATUS_OK) {
const bt_value *weight_value;
if (!bt_value_map_has_entry(query_result, "weight")) {
- BT_LOGW("support-info query: result is missing `weight` entry: "
+ BT_LOGW("babeltrace.support-info query: result is missing `weight` entry: "
"component-class-name=source.%s.%s, input=%s, input-type=%s",
bt_plugin_get_name(plugin),
bt_component_class_get_name(cc), input,
/* Do as if no value was passed. */
group_value = NULL;
} else if (bt_value_get_type(group_value) != BT_VALUE_TYPE_STRING) {
- BT_LOGW("support-info query: unexpected type for entry `group`: "
+ BT_LOGW("babeltrace.support-info query: unexpected type for entry `group`: "
"component-class-name=source.%s.%s, input=%s, input-type=%s, "
"expected-entry-type=%s,%s, actual-entry-type=%s",
bt_plugin_get_name(plugin),
}
}
} else {
- BT_LOGW("support-info query: unexpected result type: "
+ BT_LOGW("babeltrace.support-info query: unexpected result type: "
"component-class-name=source.%s.%s, input=%s, input-type=%s, "
"expected-types=%s,%s,%s, actual-type=%s",
bt_plugin_get_name(plugin),
continue;
}
- BT_LOGD("support-info query: success: component-class-name=source.%s.%s, input=%s, "
+ BT_LOGD("babeltrace.support-info query: success: component-class-name=source.%s.%s, input=%s, "
"type=%s, weight=%f\n",
bt_plugin_get_name(plugin), bt_component_class_get_name(cc), input,
input_type, weight);
winner.weigth = weight;
}
} else if (query_status == BT_QUERY_EXECUTOR_QUERY_STATUS_ERROR) {
- BT_CLI_LOGE_APPEND_CAUSE("support-info query failed.");
+ BT_CLI_LOGE_APPEND_CAUSE("babeltrace.support-info query failed.");
goto error;
} else if (query_status == BT_QUERY_EXECUTOR_QUERY_STATUS_MEMORY_ERROR) {
BT_CLI_LOGE_APPEND_CAUSE("Memory error.");
goto error;
} else {
- BT_LOGD("support-info query: failure: component-class-name=source.%s.%s, input=%s, "
+ BT_LOGD("babeltrace.support-info query: failure: component-class-name=source.%s.%s, input=%s, "
"type=%s, status=%s\n",
bt_plugin_get_name(plugin), bt_component_class_get_name(cc), input,
input_type,
const bt_component_class *comp_cls =
bt_component_class_source_as_component_class_const(src_comp_cls);
- ret = query(ctx->cfg, comp_cls, "trace-info",
+ ret = query(ctx->cfg, comp_cls, "babeltrace.trace-info",
cfg_comp->params, &query_result,
&fail_reason);
if (ret) {
- BT_LOGD("Component class does not support the `trace-info` query: %s: "
+ BT_LOGD("Component class does not support the `babeltrace.trace-info` query: %s: "
"comp-class-name=\"%s\"", fail_reason,
bt_component_class_get_name(comp_cls));
ret = -1;
BT_ASSERT(query_result);
if (!bt_value_is_array(query_result)) {
- BT_LOGD("Unexpected format of \'trace-info\' query result: "
+ BT_LOGD("Unexpected format of `babeltrace.trace-info` query result: "
"component-class-name=%s",
bt_component_class_get_name(comp_cls));
ret = -1;
if (strcmp(object, "metadata-info") == 0) {
status = metadata_info_query(comp_class, params, log_level,
result);
- } else if (strcmp(object, "trace-info") == 0) {
+ } else if (strcmp(object, "babeltrace.trace-info") == 0) {
status = trace_info_query(comp_class, params, log_level,
result);
- } else if (!strcmp(object, "support-info")) {
+ } else if (!strcmp(object, "babeltrace.support-info")) {
status = support_info_query(comp_class, params, log_level, result);
} else {
BT_LOGE("Unknown query object `%s`", object);
@staticmethod
def _user_query(query_exec, obj, params, log_level):
- if obj == 'support-info':
+ if obj == 'babeltrace.support-info':
if params['type'] == 'file':
name = os.path.basename(str(params['input']))
@staticmethod
def _user_query(query_exec, obj, params, log_level):
- if obj == 'support-info':
+ if obj == 'babeltrace.support-info':
if params['type'] == 'directory':
name = os.path.basename(str(params['input']))
return 1 if name == 'some-dir' else 0
@staticmethod
def _user_query(query_exec, obj, params, log_level):
- if obj == 'support-info':
+ if obj == 'babeltrace.support-info':
return (
1.0
if params['type'] == 'string' and params['input'] == 'ABCDE'
self.assertEqual(streams[1]['range-ns']['end'], 13515309000000120 + offset)
# Test various cominations of the clock-class-offset-s and
- # clock-class-offset-ns parameters to trace-info queries.
+ # clock-class-offset-ns parameters to babeltrace.trace-info queries.
# Without clock class offset
def test_no_clock_class_offset(self):
- res = self._executor.query(self._fs, 'trace-info', {'inputs': self._inputs})
+ res = self._executor.query(
+ self._fs, 'babeltrace.trace-info', {'inputs': self._inputs}
+ )
trace = res[0]
self._check(trace, 0)
def test_clock_class_offset_s(self):
res = self._executor.query(
- self._fs, 'trace-info', {'inputs': self._inputs, 'clock-class-offset-s': 2}
+ self._fs,
+ 'babeltrace.trace-info',
+ {'inputs': self._inputs, 'clock-class-offset-s': 2},
)
trace = res[0]
self._check(trace, 2000000000)
def test_clock_class_offset_ns(self):
res = self._executor.query(
- self._fs, 'trace-info', {'inputs': self._inputs, 'clock-class-offset-ns': 2}
+ self._fs,
+ 'babeltrace.trace-info',
+ {'inputs': self._inputs, 'clock-class-offset-ns': 2},
)
trace = res[0]
self._check(trace, 2)
def test_clock_class_offset_both(self):
res = self._executor.query(
self._fs,
- 'trace-info',
+ 'babeltrace.trace-info',
{
'inputs': self._inputs,
'clock-class-offset-s': -2,
with self.assertRaises(bt2._Error):
self._executor.query(
self._fs,
- 'trace-info',
+ 'babeltrace.trace-info',
{'inputs': self._inputs, 'clock-class-offset-s': "2"},
)
with self.assertRaises(bt2._Error):
self._executor.query(
self._fs,
- 'trace-info',
+ 'babeltrace.trace-info',
{'inputs': self._inputs, 'clock-class-offset-s': None},
)
with self.assertRaises(bt2._Error):
self._executor.query(
self._fs,
- 'trace-info',
+ 'babeltrace.trace-info',
{'inputs': self._inputs, 'clock-class-offset-ns': "2"},
)
with self.assertRaises(bt2._Error):
self._executor.query(
self._fs,
- 'trace-info',
+ 'babeltrace.trace-info',
{'inputs': self._inputs, 'clock-class-offset-ns': None},
)
def test_trace_uuid_stream_class_id_no_stream_id(self):
res = self._executor.query(
self._fs,
- "trace-info",
+ "babeltrace.trace-info",
{
"inputs": [
os.path.join(
def test_trace_uuid_no_stream_class_id_no_stream_id(self):
res = self._executor.query(
self._fs,
- "trace-info",
+ "babeltrace.trace-info",
{"inputs": [os.path.join(test_ctf_traces_path, "succeed", "succeed1")]},
)
self._executor = bt2.QueryExecutor()
def test_trace_no_range(self):
- # This trace has no `timestamp_begin` and `timestamp_end` in its packet
- # context. The `trace-info` query should omit the `range-ns` fields in
- # the `trace` and `stream` data structures.
+ # This trace has no `timestamp_begin` and `timestamp_end` in its
+ # packet context. The `babeltrace.trace-info` query should omit
+ # the `range-ns` fields in the `trace` and `stream` data
+ # structures.
res = self._executor.query(
self._fs,
- "trace-info",
+ "babeltrace.trace-info",
{"inputs": [os.path.join(test_ctf_traces_path, "succeed", "succeed1")]},
)