diff options
author | Rupak Rokade | 2021-07-04 18:18:49 +0530 |
---|---|---|
committer | GitHub | 2021-07-04 18:18:49 +0530 |
commit | 0dde2f4241572e7ab07b6e6f9095b071449f6c0f (patch) | |
tree | 243b8841f0b787f2096ccc6c0a0a8a95cd99a331 /src/fun.h | |
parent | 66ab875f7a0de3acaa0c9e2b1a8eb4ebee5f2481 (diff) | |
parent | 0b968ae5124a37916f9ab901e91a11cd90ff81a4 (diff) | |
download | fossee-scilab-octave-toolbox-master.tar.gz fossee-scilab-octave-toolbox-master.tar.bz2 fossee-scilab-octave-toolbox-master.zip |
Added Support for Windows OS
Diffstat (limited to 'src/fun.h')
-rw-r--r-- | src/fun.h | 104 |
1 files changed, 67 insertions, 37 deletions
@@ -13,53 +13,83 @@ //extern "C" int fun (double* answ, double* in1, int in1_row, std::string name, std::string opt); extern "C" -{ +{ + /** + * @brief Enumeration for the data types suported + * + */ typedef enum { - TYPE_DOUBLE, - TYPE_COMPLEX, - TYPE_STRING, - TYPE_STRUCT, + TYPE_DOUBLE, /**<similar to scilab double*/ + TYPE_COMPLEX, /**<similar to scilab complex*/ + TYPE_STRING, /**<similar to scilab string*/ + TYPE_STRUCT, /**<similar to scilab struct*/ }FUNCTYPE; + /** + * @struct FUNCSTRUCT + * @brief Struct used to pass structs to Octave from the fun library + * + */ + typedef struct { - FUNCTYPE type; // type of value in struct's field - void* key; // key of struct field - int rows; // rows dimension of struct field's value - int cols; // cols dimension of struct fields' value - void* dataReal; // Real data if struct field's value is real - void* dataImg; // Img data if struct field's value is complex - void* str; // string data if struct field's value is string + FUNCTYPE type; /**< Type of value in struct's field*/ + void* key; /**< key of struct field*/ + int rows; /**< rows dimension of struct field's value*/ + int cols; /**< cols dimension of struct fields' value*/ + void* dataReal; /**< Real data if struct field's value is real*/ + void* dataImg; /**< Img data if struct field's value is complex*/ + void* str; /**< String data if struct field's value is string*/ + } FUNCSTRUCT; + /** + * @brief Struct used to send/receive Scilab data to/from the gateway to fun.cpp API + * + */ + typedef struct { - FUNCTYPE type; - int n_in_rows; - int n_in_cols; - int n_in_struct_len; // ip struct length - int n_out_rows; - int n_out_cols; - int n_out_struct_len; // op struct length - int is_in_cmplx; - int is_out_cmplx; - int is_out_string; - int is_out_struct; - void* in_data_real; - void* in_data_img; - void* out_data_real; - void* out_data_img; - FUNCSTRUCT* in_struct; - FUNCSTRUCT* out_struct; + /*@{*/ + FUNCTYPE type; /**< Type of data */ + int n_in_rows; /**< Input rows dimension of data*/ + int n_in_cols; /**< Input cols dimension of data*/ + int n_in_struct_len; /**< input struct length*/ + int n_out_rows; /**< Ouput rows dimension of data*/ + int n_out_cols; /**< Output cols dimension of data*/ + int n_out_struct_len; /**< Output struct length*/ + int is_in_cmplx; /**< Input is a Complex data type*/ + int is_out_cmplx; /**< Output is a Complex data type*/ + int is_out_struct; /**< Output is a Struct data type*/ + int is_out_string; /**< Output is a String data type*/ + void* in_data_real; /**< Input real part (complex) array*/ + void* in_data_img; /**< Input imaginary part (complex) array*/ + void* out_data_real; /**< Output real part (complex) array*/ + void* out_data_img; /**< Output imaginary part (complex) array*/ + FUNCSTRUCT* in_struct; /**< Input struct */ + FUNCSTRUCT* out_struct; /**< Output struct*/ + /*@}*/ } FUNCARGS; - + /** + * @brief Struct used to call and pass the data to fun.cpp API + * + */ typedef struct { - int n_in_arguments; // number of input arguments - int n_out_arguments; // number of output arguments - int n_out_user; // number of output arguments - char *err; // Name - //char *package; //Name of octave package to be loaded - FUNCARGS *argument; + /*@{*/ + int n_in_arguments; /**< Number of input arguments*/ + int n_out_arguments; /**< Number of output arguements in Scilab*/ + int n_out_user; /**< Number of output arguements expected to be returned from Octave */ + char *err; /**< Return errors*/ + //char *package; //Name of octave package to be loaded*/ + FUNCARGS *argument; /**< Struct defining and containing the data*/ + /*@}*/ } FUNCCALL; - + /** + * @brief API Function to call/receive and pass the data to fun API + * + * + * @param arr Input data FUNCARGS + * @param call Input Arguments FUNCCALL + * @return int Status Code + */ int fun(FUNCARGS *arr, FUNCCALL *call); } |