struct bt_value *bt_ctf_trace_get_environment_field_value_by_name( struct bt_ctf_trace *trace, const char *name) { struct bt_value *ret = NULL; if (!trace || !name) { goto end; } ret = bt_ctf_attributes_get_field_value_by_name(trace->environment, name); end: return ret; }
int bt_ctf_trace_set_environment_field_string(struct bt_ctf_trace *trace, const char *name, const char *value) { int ret = 0; struct bt_value *env_value_string_obj = NULL; if (!trace || !name || !value) { ret = -1; goto end; } if (trace->frozen) { /* * New environment fields may be added to a frozen trace, * but existing fields may not be changed. */ struct bt_value *attribute = bt_ctf_attributes_get_field_value_by_name( trace->environment, name); if (attribute) { BT_PUT(attribute); ret = -1; goto end; } } env_value_string_obj = bt_value_string_create_init(value); if (!env_value_string_obj) { ret = -1; goto end; } if (trace->frozen) { bt_value_freeze(env_value_string_obj); } ret = bt_ctf_trace_set_environment_field(trace, name, env_value_string_obj); end: BT_PUT(env_value_string_obj); return ret; }
int bt_ctf_trace_set_environment_field(struct bt_ctf_trace *trace, const char *name, struct bt_value *value) { int ret = 0; if (!trace || !name || !value || bt_ctf_validate_identifier(name) || !(bt_value_is_integer(value) || bt_value_is_string(value))) { ret = -1; goto end; } if (strchr(name, ' ')) { ret = -1; goto end; } if (trace->frozen) { /* * New environment fields may be added to a frozen trace, * but existing fields may not be changed. * * The object passed is frozen like all other attributes. */ struct bt_value *attribute = bt_ctf_attributes_get_field_value_by_name( trace->environment, name); if (attribute) { BT_PUT(attribute); ret = -1; goto end; } bt_value_freeze(value); } ret = bt_ctf_attributes_set_field_value(trace->environment, name, value); end: return ret; }
BT_HIDDEN struct bt_value * bt_ctf_event_class_get_attribute_value_by_name( struct bt_ctf_event_class *event_class, const char *name) { struct bt_value *ret; if (!event_class || !name) { ret = NULL; goto end; } ret = bt_ctf_attributes_get_field_value_by_name(event_class->attributes, name); end: return ret; }