X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fctf-writer%2Ffield-path.h;fp=src%2Fctf-writer%2Ffield-path.h;h=cf9edd3ff6b78e96344d3fe01bab79d1d6e8a9eb;hb=578e048b5debf169e286e5b5cc747b5d6c16886d;hp=0000000000000000000000000000000000000000;hpb=68b66a256a54d32992dfefeaad11eea88b7df234;p=babeltrace.git diff --git a/src/ctf-writer/field-path.h b/src/ctf-writer/field-path.h new file mode 100644 index 00000000..cf9edd3f --- /dev/null +++ b/src/ctf-writer/field-path.h @@ -0,0 +1,68 @@ +#ifndef BABELTRACE_CTF_WRITER_FIELD_PATH_INTERNAL +#define BABELTRACE_CTF_WRITER_FIELD_PATH_INTERNAL + +/* + * Copyright 2016 Philippe Proulx + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * The Common Trace Format (CTF) Specification is available at + * http://www.efficios.com/ctf + */ + +#include "common/common.h" +#include "common/assert.h" +#include +#include + +#include "object.h" + +struct bt_ctf_field_path { + struct bt_ctf_object base; + enum bt_ctf_scope root; + + /* + * Array of integers (int) indicating the index in either + * structures, variants, arrays, or sequences that make up + * the path to a field type. -1 means the "current element + * of an array or sequence type". + */ + GArray *indexes; +}; + +BT_HIDDEN +struct bt_ctf_field_path *bt_ctf_field_path_create(void); + +BT_HIDDEN +void bt_ctf_field_path_clear(struct bt_ctf_field_path *field_path); + +BT_HIDDEN +struct bt_ctf_field_path *bt_ctf_field_path_copy( + struct bt_ctf_field_path *path); + +BT_HIDDEN enum bt_ctf_scope bt_ctf_field_path_get_root_scope( + const struct bt_ctf_field_path *field_path); + +BT_HIDDEN int64_t bt_ctf_field_path_get_index_count( + const struct bt_ctf_field_path *field_path); + +BT_HIDDEN int bt_ctf_field_path_get_index( + const struct bt_ctf_field_path *field_path, uint64_t index); + +#endif /* BABELTRACE_CTF_WRITER_FIELD_PATH_INTERNAL */