Commit | Line | Data |
---|---|---|
6945df9a SM |
1 | /* |
2 | * The MIT License (MIT) | |
3 | * | |
4 | * Copyright (c) 2016 Philippe Proulx <pproulx@efficios.com> | |
5 | * | |
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy | |
7 | * of this software and associated documentation files (the "Software"), to deal | |
8 | * in the Software without restriction, including without limitation the rights | |
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
10 | * copies of the Software, and to permit persons to whom the Software is | |
11 | * furnished to do so, subject to the following conditions: | |
12 | * | |
13 | * The above copyright notice and this permission notice shall be included in | |
14 | * all copies or substantial portions of the Software. | |
15 | * | |
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
22 | * THE SOFTWARE. | |
23 | */ | |
24 | ||
d6bb425c | 25 | /* Parameter names seem to be required for multi-argument typemaps to match. */ |
6945df9a | 26 | %typemap(in, numinputs=0) |
43c59509 | 27 | (bt_field_class_enumeration_mapping_label_array *labels, uint64_t *count) |
6945df9a SM |
28 | (bt_field_class_enumeration_mapping_label_array temp_array, uint64_t temp_label_count = 0) { |
29 | $1 = &temp_array; | |
30 | $2 = &temp_label_count; | |
31 | } | |
32 | ||
33 | %typemap(argout) | |
43c59509 | 34 | (bt_field_class_enumeration_mapping_label_array *labels, uint64_t *count) { |
6945df9a SM |
35 | if (*$1) { |
36 | PyObject *py_label_list = PyList_New(*$2); | |
ebccea5f SM |
37 | uint64_t i; |
38 | ||
39 | for (i = 0; i < *$2; i++) { | |
6945df9a SM |
40 | PyList_SET_ITEM(py_label_list, i, PyUnicode_FromString((*$1)[i])); |
41 | } | |
42 | ||
43 | $result = SWIG_Python_AppendOutput($result, py_label_list); | |
44 | } else { | |
45 | Py_INCREF(Py_None); | |
46 | $result = SWIG_Python_AppendOutput($result, Py_None); | |
47 | } | |
48 | } | |
49 | ||
d6bb425c | 50 | %include <babeltrace2/trace-ir/field-class.h> |