BT_HIDDEN
int bt_ctf_event_class_set_stream_id(struct bt_ctf_event_class *event_class,
		uint32_t stream_id)
{
	int ret = 0;
	struct bt_value *obj;

	obj = bt_value_integer_create_init(stream_id);

	if (!obj) {
		ret = -1;
		goto end;
	}

	ret = bt_ctf_attributes_set_field_value(event_class->attributes,
		"stream_id", obj);

	if (event_class->frozen) {
		bt_ctf_attributes_freeze(event_class->attributes);
	}

end:
	BT_PUT(obj);
	return ret;
}
Beispiel #2
0
static
struct bt_value *bt_value_integer_copy(
		const struct bt_value *integer_obj)
{
	return bt_value_integer_create_init(integer_obj->type,
		BT_VALUE_TO_INTEGER(integer_obj)->value.u);
}
struct bt_ctf_event_class *bt_ctf_event_class_create(const char *name)
{
	int ret;
	struct bt_value *obj = NULL;
	struct bt_ctf_event_class *event_class = NULL;

	if (bt_ctf_validate_identifier(name)) {
		goto error;
	}

	event_class = g_new0(struct bt_ctf_event_class, 1);
	if (!event_class) {
		goto error;
	}

	bt_object_init(event_class, bt_ctf_event_class_destroy);
	event_class->fields = bt_ctf_field_type_structure_create();
	if (!event_class->fields) {
		goto error;
	}

	event_class->attributes = bt_ctf_attributes_create();
	if (!event_class->attributes) {
		goto error;
	}

	obj = bt_value_integer_create_init(-1);
	if (!obj) {
		goto error;
	}

	ret = bt_ctf_attributes_set_field_value(event_class->attributes,
		"id", obj);
	if (ret) {
		goto error;
	}

	BT_PUT(obj);

	obj = bt_value_string_create_init(name);
	if (!obj) {
		goto error;
	}

	ret = bt_ctf_attributes_set_field_value(event_class->attributes,
		"name", obj);
	if (ret) {
		goto error;
	}

	BT_PUT(obj);

	return event_class;

error:
        BT_PUT(event_class);
	BT_PUT(obj);
	return event_class;
}
Beispiel #4
0
int bt_ctf_trace_set_environment_field_integer(struct bt_ctf_trace *trace,
		const char *name, int64_t value)
{
	int ret = 0;
	struct bt_value *env_value_integer_obj = NULL;

	if (!trace || !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.
		 */
		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_integer_obj = bt_value_integer_create_init(value);
	if (!env_value_integer_obj) {
		ret = -1;
		goto end;
	}

	ret = bt_ctf_trace_set_environment_field(trace, name,
		env_value_integer_obj);
	if (trace->frozen) {
		bt_value_freeze(env_value_integer_obj);
	}
end:
	BT_PUT(env_value_integer_obj);
	return ret;
}
Beispiel #5
0
struct bt_value *bt_value_signed_integer_create_init(int64_t val)
{
	return bt_value_integer_create_init(BT_VALUE_TYPE_SIGNED_INTEGER,
		(uint64_t) val);
}
Beispiel #6
0
struct bt_value *bt_value_unsigned_integer_create_init(uint64_t val)
{
	return bt_value_integer_create_init(BT_VALUE_TYPE_UNSIGNED_INTEGER,
		val);
}