Merge remote-tracking branch 'origin/master' into windows
[scilab.git] / scilab / modules / api_scilab / includes / api_struct.h
1 /*
2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2015 - Scilab Enteprises - Antoine ELIAS
4 *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13 */
14
15 #ifndef __STRUCT_API__
16 #define __STRUCT_API__
17
18 #if !defined(__INTERNAL_API_SCILAB__)
19 #error Do not include api_struct.h. Include api_scilab.h instead.
20 #endif
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 #define scilab_createStruct             API_PROTO(createStruct)
27 #define scilab_createStructMatrix       API_PROTO(createStructMatrix)
28 #define scilab_createStructMatrix2d     API_PROTO(createStructMatrix2d)
29 #define scilab_addFields                API_PROTO(addFields)
30 #define scilab_addField                 API_PROTO(addField)
31 #define scilab_getFields                API_PROTO(getFields)
32 #define scilab_getStructMatrixData      API_PROTO(getStructMatrixData)
33 #define scilab_getStructMatrix2dData    API_PROTO(getStructMatrix2dData)
34 #define scilab_setStructMatrixData      API_PROTO(setStructMatrixData)
35 #define scilab_setStructMatrix2dData    API_PROTO(setStructMatrix2dData)
36
37 scilabVar API_PROTO(createStruct)(scilabEnv env);
38 scilabVar API_PROTO(createStructMatrix)(scilabEnv env, int dim, const int* dims);
39 scilabVar API_PROTO(createStructMatrix2d)(scilabEnv env, int row, int col);
40
41 /*fields*/
42 scilabStatus API_PROTO(addFields)(scilabEnv env, scilabVar var, int count, const char* const* fields);
43 scilabStatus API_PROTO(addField)(scilabEnv env, scilabVar var, const char* field);
44 int API_PROTO(getFields)(scilabEnv env, scilabVar var, const char*** fields);
45
46 /*data*/
47 scilabVar API_PROTO(getStructMatrixData)(scilabEnv env, scilabVar var, const char* field, const int* index);
48 scilabVar API_PROTO(getStructMatrix2dData)(scilabEnv env, scilabVar var, const char* field, int row, int col);
49
50 scilabStatus API_PROTO(setStructMatrixData)(scilabEnv env, scilabVar var, const char* field, const int* index, const scilabVar data);
51 scilabStatus API_PROTO(setStructMatrix2dData)(scilabEnv env, scilabVar var, const char* field, int row, int col, const scilabVar data);
52
53 #ifdef __cplusplus
54 }
55 #endif
56 #endif /* __STRUCT_API__ */