X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bindings%2Fpython%2Fpython-complements.c;h=3ef0a23af284171bef5bb12bab540cd18c0aad1b;hb=e5a73b906c4ef25a05f56dd41d61e58fb73254e5;hp=a4ee37e23262f4c014527061a4016d0ea2d059f0;hpb=f85f806c0bd6b0d2583805d6bdd8d792b311c412;p=babeltrace.git diff --git a/bindings/python/python-complements.c b/bindings/python/python-complements.c index a4ee37e2..3ef0a23a 100644 --- a/bindings/python/python-complements.c +++ b/bindings/python/python-complements.c @@ -44,16 +44,16 @@ void _bt_file_close(FILE *fp) */ /* ctf-field-list */ -struct definition **_bt_python_field_listcaller( +struct bt_definition **_bt_python_field_listcaller( const struct bt_ctf_event *ctf_event, - const struct definition *scope) + const struct bt_definition *scope) { - struct definition **list; + struct bt_definition **list; unsigned int count; int ret; ret = bt_ctf_get_field_list(ctf_event, scope, - (const struct definition * const **)&list, &count); + (const struct bt_definition * const **)&list, &count); if (ret < 0) /* For python to know an error occured */ list = NULL; @@ -63,8 +63,8 @@ struct definition **_bt_python_field_listcaller( return list; } -struct definition *_bt_python_field_one_from_list( - struct definition **list, int index) +struct bt_definition *_bt_python_field_one_from_list( + struct bt_definition **list, int index) { return list[index]; } @@ -119,3 +119,32 @@ struct bt_ctf_field_decl *_bt_python_field_decl_one_from_list( { return list[index]; } + +struct definition_array *_bt_python_get_array_from_def( + struct bt_definition *field) +{ + const struct bt_declaration *array_decl; + struct definition_array *array = NULL; + + if (!field) { + goto end; + } + + array_decl = bt_ctf_get_decl_from_def(field); + if (bt_ctf_field_type(array_decl) == CTF_TYPE_ARRAY) { + array = container_of(field, struct definition_array, p); + } +end: + return array; +} + +struct definition_sequence *_bt_python_get_sequence_from_def( + struct bt_definition *field) +{ + if (field && bt_ctf_field_type( + bt_ctf_get_decl_from_def(field)) == CTF_TYPE_SEQUENCE) { + return container_of(field, struct definition_sequence, p); + } + + return NULL; +}