- bt_field_type_freeze(event_class->fields);
-}
-
-BT_HIDDEN
-int bt_event_class_serialize(struct bt_event_class *event_class,
- struct metadata_context *context)
-{
- int ret = 0;
- struct bt_value *attr_value = NULL;
-
- BT_ASSERT(event_class);
- BT_ASSERT(context);
- BT_LOGD("Serializing event class's metadata: "
- "event-class-addr=%p, event-class-name=\"%s\", "
- "event-class-id=%" PRId64 ", metadata-context-addr=%p",
- event_class, bt_event_class_get_name(event_class),
- bt_event_class_get_id(event_class), context);
- context->current_indentation_level = 1;
- g_string_assign(context->field_name, "");
- g_string_append(context->string, "event {\n");
-
- /* Serialize attributes */
- g_string_append_printf(context->string, "\tname = \"%s\";\n",
- event_class->name->str);
- BT_ASSERT(event_class->id >= 0);
- g_string_append_printf(context->string, "\tid = %" PRId64 ";\n",
- event_class->id);
- g_string_append_printf(context->string, "\tstream_id = %" PRId64 ";\n",
- bt_stream_class_get_id(
- bt_event_class_borrow_stream_class(event_class)));
-
- if (event_class->log_level != BT_EVENT_CLASS_LOG_LEVEL_UNSPECIFIED) {
- g_string_append_printf(context->string, "\tloglevel = %d;\n",
- (int) event_class->log_level);
- }
-
- if (event_class->emf_uri->len > 0) {
- g_string_append_printf(context->string, "\tmodel.emf.uri = \"%s\";\n",
- event_class->emf_uri->str);
- }
-
- /* Serialize context field type */
- if (event_class->context) {
- g_string_append(context->string, "\tcontext := ");
- BT_LOGD_STR("Serializing event class's context field type metadata.");
- ret = bt_field_type_serialize(event_class->context,
- context);
- if (ret) {
- BT_LOGW("Cannot serialize event class's context field type's metadata: "
- "ret=%d", ret);
- goto end;
- }
- g_string_append(context->string, ";\n");
- }
-
- /* Serialize payload field type */
- if (event_class->fields) {
- g_string_append(context->string, "\tfields := ");
- BT_LOGD_STR("Serializing event class's payload field type metadata.");
- ret = bt_field_type_serialize(event_class->fields, context);
- if (ret) {
- BT_LOGW("Cannot serialize event class's payload field type's metadata: "
- "ret=%d", ret);
- goto end;
- }
- g_string_append(context->string, ";\n");
- }
-
- g_string_append(context->string, "};\n\n");
-end:
- context->current_indentation_level = 0;
- BT_PUT(attr_value);
- return ret;