/* Notifiy listeners of the trace's schema modification. */
if (trace) {
- struct bt_ctf_ir_element element = { .element = event_class,
- .type = BT_CTF_IR_TYPE_EVENT_CLASS };
+ struct bt_ctf_object obj = { .object = event_class,
+ .type = BT_CTF_OBJECT_TYPE_EVENT_CLASS };
- (void) bt_ctf_trace_element_modification(&element, trace);
+ (void) bt_ctf_trace_object_modification(&obj, trace);
}
end:
BT_PUT(trace);
}
static
-int visit_event_class(void *element, bt_ctf_ir_visitor visitor,void *data)
+int visit_event_class(void *object, bt_ctf_visitor visitor,void *data)
{
- struct bt_ctf_ir_element ir_element =
- { .element = element,
- .type = BT_CTF_IR_TYPE_EVENT_CLASS };
+ struct bt_ctf_object obj =
+ { .object = object,
+ .type = BT_CTF_OBJECT_TYPE_EVENT_CLASS };
- return visitor(&ir_element, data);
+ return visitor(&obj, data);
}
int bt_ctf_stream_class_visit(struct bt_ctf_stream_class *stream_class,
- bt_ctf_ir_visitor visitor, void *data)
+ bt_ctf_visitor visitor, void *data)
{
int ret;
- struct bt_ctf_ir_element element =
- { .element = stream_class,
- .type = BT_CTF_IR_TYPE_STREAM_CLASS };
+ struct bt_ctf_object obj =
+ { .object = stream_class,
+ .type = BT_CTF_OBJECT_TYPE_STREAM_CLASS };
if (!stream_class || !visitor) {
ret = -1;
goto end;
}
- ret = visitor_helper(&element, get_event_class_count,
+ ret = visitor_helper(&obj, get_event_class_count,
get_event_class,
visit_event_class, visitor, data);
end:
/* Notifiy listeners of the trace's schema modification. */
bt_ctf_stream_class_visit(stream_class,
- bt_ctf_trace_element_modification, trace);
+ bt_ctf_trace_object_modification, trace);
end:
if (ret) {
bt_object_set_parent(stream_class, NULL);
}
static
-int visit_stream_class(void *element, bt_ctf_ir_visitor visitor,void *data)
+int visit_stream_class(void *object, bt_ctf_visitor visitor,void *data)
{
- return bt_ctf_stream_class_visit(element, visitor, data);
+ return bt_ctf_stream_class_visit(object, visitor, data);
}
int bt_ctf_trace_visit(struct bt_ctf_trace *trace,
- bt_ctf_ir_visitor visitor, void *data)
+ bt_ctf_visitor visitor, void *data)
{
int ret;
- struct bt_ctf_ir_element element =
- { .element = trace, .type = BT_CTF_IR_TYPE_TRACE };
+ struct bt_ctf_object obj =
+ { .object = trace, .type = BT_CTF_OBJECT_TYPE_TRACE };
if (!trace || !visitor) {
ret = -1;
goto end;
}
- ret = visitor_helper(&element, get_stream_class_count,
+ ret = visitor_helper(&obj, get_stream_class_count,
get_stream_class, visit_stream_class, visitor, data);
end:
return ret;
}
static
-int invoke_listener(struct bt_ctf_ir_element *element, void *data)
+int invoke_listener(struct bt_ctf_object *object, void *data)
{
struct listener_wrapper *listener_wrapper = data;
- listener_wrapper->listener(element, listener_wrapper->data);
+ listener_wrapper->listener(object, listener_wrapper->data);
return 0;
}
}
BT_HIDDEN
-int bt_ctf_trace_element_modification(struct bt_ctf_ir_element *element,
+int bt_ctf_trace_object_modification(struct bt_ctf_object *object,
void *trace_ptr)
{
size_t i;
struct bt_ctf_trace *trace = trace_ptr;
assert(trace);
- assert(element);
+ assert(object);
if (trace->listeners->len == 0) {
goto end;
struct listener_wrapper *listener =
g_ptr_array_index(trace->listeners, i);
- listener->listener(element, listener->data);
+ listener->listener(object, listener->data);
}
end:
return 0;
#include <babeltrace/ref.h>
BT_HIDDEN
-int visitor_helper(struct bt_ctf_ir_element *root,
+int visitor_helper(struct bt_ctf_object *root,
bt_child_count_accessor child_counter,
bt_child_accessor child_accessor,
bt_child_visitor child_visitor,
- bt_ctf_ir_visitor visitor,
+ bt_ctf_visitor visitor,
void *data)
{
int ret, child_count, i;
goto end;
}
- child_count = child_counter(root->element);
+ child_count = child_counter(root->object);
if (child_count < 0) {
ret = child_count;
goto end;
for (i = 0; i < child_count; i++) {
void *child;
- child = child_accessor(root->element, i);
+ child = child_accessor(root->object, i);
if (!child) {
ret = -1;
goto end;
return ret;
}
-enum bt_ctf_ir_type bt_ctf_ir_element_get_type(
- struct bt_ctf_ir_element *element)
+enum bt_ctf_object_type bt_ctf_object_get_type(struct bt_ctf_object *object)
{
- enum bt_ctf_ir_type ret = BT_CTF_IR_TYPE_UNKNOWN;
-
- if (!element) {
+ enum bt_ctf_object_type ret = BT_CTF_OBJECT_TYPE_UNKNOWN;
+
+ if (!object) {
goto end;
}
- ret = element->type;
+ ret = object->type;
end:
return ret;
}
-void *bt_ctf_ir_element_get_element(struct bt_ctf_ir_element *element)
+void *bt_ctf_object_get_object(struct bt_ctf_object *object)
{
void *ret = NULL;
- if (!element) {
+ if (!object) {
goto end;
}
- ret = element->element;
+ ret = object->object;
end:
return ret;
}
@prenotnull{visitor}
*/
extern int bt_ctf_stream_class_visit(struct bt_ctf_stream_class *stream_class,
- bt_ctf_ir_visitor visitor, void *data);
+ bt_ctf_visitor visitor, void *data);
/** @} */
struct bt_ctf_field_type *get_field_type(enum field_type_alias alias);
BT_HIDDEN
-int bt_ctf_trace_element_modification(struct bt_ctf_ir_element *element,
+int bt_ctf_trace_object_modification(struct bt_ctf_object *object,
void *trace_ptr);
#endif /* BABELTRACE_CTF_IR_TRACE_INTERNAL_H */
/**
@brief User function type to use with bt_ctf_trace_add_listener().
-@param[in] element New element which is part of the trace class
- hierarchy.
-@param[in] data User data.
+@param[in] obj New CTF IR object which is part of the trace
+ class hierarchy.
+@param[in] data User data.
-@prenotnull{element}
+@prenotnull{obj}
*/
-typedef void (*bt_ctf_listener_cb)(
- struct bt_ctf_ir_element *element, void *data);
+typedef void (*bt_ctf_listener_cb)(struct bt_ctf_object *obj, void *data);
/**
@brief Adds the trace class modification listener \p listener to
@prenotnull{visitor}
*/
extern int bt_ctf_trace_visit(struct bt_ctf_trace *trace_class,
- bt_ctf_ir_visitor visitor, void *data);
+ bt_ctf_visitor visitor, void *data);
/** @} */
#include <babeltrace/ctf-ir/visitor.h>
#include <babeltrace/babeltrace-internal.h>
-typedef void *(*bt_child_accessor)(void *element, int index);
-typedef int (*bt_child_count_accessor)(void *element);
-typedef int (*bt_child_visitor)(void *element, bt_ctf_ir_visitor visitor,
+typedef void *(*bt_child_accessor)(void *object, int index);
+typedef int (*bt_child_count_accessor)(void *object);
+typedef int (*bt_child_visitor)(void *object, bt_ctf_visitor visitor,
void *data);
-struct bt_ctf_ir_element {
- enum bt_ctf_ir_type type;
- void *element;
+struct bt_ctf_object {
+ enum bt_ctf_object_type type;
+ void *object;
};
BT_HIDDEN
-int visitor_helper(struct bt_ctf_ir_element *root,
+int visitor_helper(struct bt_ctf_object *root,
bt_child_count_accessor child_counter,
bt_child_accessor child_accessor,
bt_child_visitor child_visitor,
- bt_ctf_ir_visitor visitor,
+ bt_ctf_visitor visitor,
void *data);
#endif /* BABELTRACE_CTF_IR_VISITOR_INTERNAL_H */
extern "C" {
#endif
-struct bt_ctf_ir_element;
+struct bt_ctf_object;
-enum bt_ctf_ir_type {
- BT_CTF_IR_TYPE_UNKNOWN = -1,
- BT_CTF_IR_TYPE_TRACE = 0,
- BT_CTF_IR_TYPE_STREAM_CLASS = 1,
- BT_CTF_IR_TYPE_STREAM = 2,
- BT_CTF_IR_TYPE_EVENT_CLASS = 3,
- BT_CTF_IR_TYPE_EVENT = 4,
- BT_CTF_IR_TYPE_NR,
+enum bt_ctf_object_type {
+ BT_CTF_OBJECT_TYPE_UNKNOWN = -1,
+ BT_CTF_OBJECT_TYPE_TRACE = 0,
+ BT_CTF_OBJECT_TYPE_STREAM_CLASS = 1,
+ BT_CTF_OBJECT_TYPE_STREAM = 2,
+ BT_CTF_OBJECT_TYPE_EVENT_CLASS = 3,
+ BT_CTF_OBJECT_TYPE_EVENT = 4,
+ BT_CTF_OBJECT_TYPE_NR,
};
-typedef int (*bt_ctf_ir_visitor)(struct bt_ctf_ir_element *element,
+typedef int (*bt_ctf_visitor)(struct bt_ctf_object *object,
void *data);
/*
- * bt_ctf_ir_element_get_type: get an IR element's type.
+ * bt_ctf_object_get_type: get an IR element's type.
*
* Get an IR element's type.
*
* @param element Element instance.
*
- * Returns one of #bt_ctf_ir_type.
+ * Returns one of #bt_ctf_object_type.
*/
-enum bt_ctf_ir_type bt_ctf_ir_element_get_type(
- struct bt_ctf_ir_element *element);
+enum bt_ctf_object_type bt_ctf_object_get_type(
+ struct bt_ctf_object *object);
/*
- * bt_ctf_ir_element_get_element: get an IR element's value.
+ * bt_ctf_object_get_element: get an IR element's value.
*
* Get an IR element's value.
*
* @param element Element instance.
*
- * Returns a CTF-IR type. Use #bt_ctf_ir_type to determine the
+ * Returns a CTF-IR type. Use #bt_ctf_object_type to determine the
* concrete type of the value returned.
*/
-void *bt_ctf_ir_element_get_element(struct bt_ctf_ir_element *element);
+void *bt_ctf_object_get_object(struct bt_ctf_object *object);
#ifdef __cplusplus
}
};
struct expected_result {
- const char *element_name;
- enum bt_ctf_ir_type element_type;
+ const char *object_name;
+ enum bt_ctf_object_type object_type;
};
struct expected_result expected_results[] = {
- { NULL, BT_CTF_IR_TYPE_TRACE },
- { "sc1", BT_CTF_IR_TYPE_STREAM_CLASS },
- { "ec1", BT_CTF_IR_TYPE_EVENT_CLASS },
- { "sc2", BT_CTF_IR_TYPE_STREAM_CLASS },
- { "ec2", BT_CTF_IR_TYPE_EVENT_CLASS },
- { "ec3", BT_CTF_IR_TYPE_EVENT_CLASS },
+ { NULL, BT_CTF_OBJECT_TYPE_TRACE },
+ { "sc1", BT_CTF_OBJECT_TYPE_STREAM_CLASS },
+ { "ec1", BT_CTF_OBJECT_TYPE_EVENT_CLASS },
+ { "sc2", BT_CTF_OBJECT_TYPE_STREAM_CLASS },
+ { "ec2", BT_CTF_OBJECT_TYPE_EVENT_CLASS },
+ { "ec3", BT_CTF_OBJECT_TYPE_EVENT_CLASS },
};
-const char *element_type_str(enum bt_ctf_ir_type type)
+const char *object_type_str(enum bt_ctf_object_type type)
{
switch (type) {
- case BT_CTF_IR_TYPE_TRACE:
+ case BT_CTF_OBJECT_TYPE_TRACE:
return "trace";
- case BT_CTF_IR_TYPE_STREAM_CLASS:
+ case BT_CTF_OBJECT_TYPE_STREAM_CLASS:
return "stream class";
- case BT_CTF_IR_TYPE_STREAM:
+ case BT_CTF_OBJECT_TYPE_STREAM:
return "stream";
- case BT_CTF_IR_TYPE_EVENT_CLASS:
+ case BT_CTF_OBJECT_TYPE_EVENT_CLASS:
return "event class";
- case BT_CTF_IR_TYPE_EVENT:
+ case BT_CTF_OBJECT_TYPE_EVENT:
return "event";
default:
return "unknown";
goto end;
}
-int visitor(struct bt_ctf_ir_element *element, void *data)
+int visitor(struct bt_ctf_object *object, void *data)
{
int ret = 0;
bool names_match;
- const char *element_name;
+ const char *object_name;
struct visitor_state *state = data;
struct expected_result *expected = &expected_results[state->i++];
- switch (bt_ctf_ir_element_get_type(element)) {
- case BT_CTF_IR_TYPE_TRACE:
- element_name = NULL;
- names_match = expected->element_name == NULL;
+ switch (bt_ctf_object_get_type(object)) {
+ case BT_CTF_OBJECT_TYPE_TRACE:
+ object_name = NULL;
+ names_match = expected->object_name == NULL;
break;
- case BT_CTF_IR_TYPE_STREAM_CLASS:
- element_name = bt_ctf_stream_class_get_name(
- bt_ctf_ir_element_get_element(element));
- if (!element_name) {
+ case BT_CTF_OBJECT_TYPE_STREAM_CLASS:
+ object_name = bt_ctf_stream_class_get_name(
+ bt_ctf_object_get_object(object));
+ if (!object_name) {
ret = -1;
goto end;
}
- names_match = !strcmp(element_name, expected->element_name);
+ names_match = !strcmp(object_name, expected->object_name);
break;
- case BT_CTF_IR_TYPE_EVENT_CLASS:
- element_name = bt_ctf_event_class_get_name(
- bt_ctf_ir_element_get_element(element));
- if (!element_name) {
+ case BT_CTF_OBJECT_TYPE_EVENT_CLASS:
+ object_name = bt_ctf_event_class_get_name(
+ bt_ctf_object_get_object(object));
+ if (!object_name) {
ret = -1;
goto end;
}
- names_match = !strcmp(element_name, expected->element_name);
+ names_match = !strcmp(object_name, expected->object_name);
break;
default:
diag("Encountered an unexpected type while visiting trace");
goto end;
}
- ok(expected->element_type == bt_ctf_ir_element_get_type(element),
- "Encoutered element type %s, expected %s",
- element_type_str(expected->element_type),
- element_type_str(bt_ctf_ir_element_get_type(element)));
+ ok(expected->object_type == bt_ctf_object_get_type(object),
+ "Encoutered object type %s, expected %s",
+ object_type_str(expected->object_type),
+ object_type_str(bt_ctf_object_get_type(object)));
ok(names_match, "Element name is %s, expected %s",
- element_name ? : "NULL",
- expected->element_name ? : "NULL");
+ object_name ? : "NULL",
+ expected->object_name ? : "NULL");
end:
return ret;
}
};
struct expected_result {
- const char *element_name;
- enum bt_ctf_ir_type element_type;
+ const char *object_name;
+ enum bt_ctf_object_type object_type;
};
struct expected_result expected_results[] = {
- { NULL, BT_CTF_IR_TYPE_TRACE },
- { "sc1", BT_CTF_IR_TYPE_STREAM_CLASS },
- { "ec1", BT_CTF_IR_TYPE_EVENT_CLASS },
- { "sc2", BT_CTF_IR_TYPE_STREAM_CLASS },
- { "ec2", BT_CTF_IR_TYPE_EVENT_CLASS },
- { "ec3", BT_CTF_IR_TYPE_EVENT_CLASS },
+ { NULL, BT_CTF_OBJECT_TYPE_TRACE },
+ { "sc1", BT_CTF_OBJECT_TYPE_STREAM_CLASS },
+ { "ec1", BT_CTF_OBJECT_TYPE_EVENT_CLASS },
+ { "sc2", BT_CTF_OBJECT_TYPE_STREAM_CLASS },
+ { "ec2", BT_CTF_OBJECT_TYPE_EVENT_CLASS },
+ { "ec3", BT_CTF_OBJECT_TYPE_EVENT_CLASS },
/* Elements added after the initial add_listener call. */
- { "sc3", BT_CTF_IR_TYPE_STREAM_CLASS },
- { "ec4", BT_CTF_IR_TYPE_EVENT_CLASS },
- { "ec5", BT_CTF_IR_TYPE_EVENT_CLASS },
+ { "sc3", BT_CTF_OBJECT_TYPE_STREAM_CLASS },
+ { "ec4", BT_CTF_OBJECT_TYPE_EVENT_CLASS },
+ { "ec5", BT_CTF_OBJECT_TYPE_EVENT_CLASS },
};
-const char *element_type_str(enum bt_ctf_ir_type type)
+const char *object_type_str(enum bt_ctf_object_type type)
{
switch (type) {
- case BT_CTF_IR_TYPE_TRACE:
+ case BT_CTF_OBJECT_TYPE_TRACE:
return "trace";
- case BT_CTF_IR_TYPE_STREAM_CLASS:
+ case BT_CTF_OBJECT_TYPE_STREAM_CLASS:
return "stream class";
- case BT_CTF_IR_TYPE_STREAM:
+ case BT_CTF_OBJECT_TYPE_STREAM:
return "stream";
- case BT_CTF_IR_TYPE_EVENT_CLASS:
+ case BT_CTF_OBJECT_TYPE_EVENT_CLASS:
return "event class";
- case BT_CTF_IR_TYPE_EVENT:
+ case BT_CTF_OBJECT_TYPE_EVENT:
return "event";
default:
return "unknown";
goto end;
}
-void visitor(struct bt_ctf_ir_element *element, void *data)
+void visitor(struct bt_ctf_object *object, void *data)
{
bool names_match;
- const char *element_name;
+ const char *object_name;
struct visitor_state *state = data;
struct expected_result *expected = &expected_results[state->i++];
- switch (bt_ctf_ir_element_get_type(element)) {
- case BT_CTF_IR_TYPE_TRACE:
- element_name = NULL;
- names_match = expected->element_name == NULL;
+ switch (bt_ctf_object_get_type(object)) {
+ case BT_CTF_OBJECT_TYPE_TRACE:
+ object_name = NULL;
+ names_match = expected->object_name == NULL;
break;
- case BT_CTF_IR_TYPE_STREAM_CLASS:
- element_name = bt_ctf_stream_class_get_name(
- bt_ctf_ir_element_get_element(element));
- if (!element_name) {
+ case BT_CTF_OBJECT_TYPE_STREAM_CLASS:
+ object_name = bt_ctf_stream_class_get_name(
+ bt_ctf_object_get_object(object));
+ if (!object_name) {
return;
}
- names_match = !strcmp(element_name, expected->element_name);
+ names_match = !strcmp(object_name, expected->object_name);
break;
- case BT_CTF_IR_TYPE_EVENT_CLASS:
- element_name = bt_ctf_event_class_get_name(
- bt_ctf_ir_element_get_element(element));
- if (!element_name) {
+ case BT_CTF_OBJECT_TYPE_EVENT_CLASS:
+ object_name = bt_ctf_event_class_get_name(
+ bt_ctf_object_get_object(object));
+ if (!object_name) {
return;
}
- names_match = !strcmp(element_name, expected->element_name);
+ names_match = !strcmp(object_name, expected->object_name);
break;
default:
diag("Encountered an unexpected type while visiting trace");
return;
}
- ok(expected->element_type == bt_ctf_ir_element_get_type(element),
- "Encoutered element type %s, expected %s",
- element_type_str(expected->element_type),
- element_type_str(bt_ctf_ir_element_get_type(element)));
+ ok(expected->object_type == bt_ctf_object_get_type(object),
+ "Encoutered object type %s, expected %s",
+ object_type_str(expected->object_type),
+ object_type_str(bt_ctf_object_get_type(object)));
ok(names_match, "Element name is %s, expected %s",
- element_name ? : "NULL",
- expected->element_name ? : "NULL");
+ object_name ? : "NULL",
+ expected->object_name ? : "NULL");
}
int main(int argc, char **argv)
ok(!ret, "bt_ctf_trace_add_listener returned success");
/*
- * Validate that listeners are notified when new elements are added to a
+ * Validate that listeners are notified when new objects are added to a
* trace.
*/
sc3 = bt_ctf_stream_class_create("sc3");