summaryrefslogtreecommitdiff
path: root/src/fun.h
diff options
context:
space:
mode:
authorRupak Rokade2021-07-04 18:18:49 +0530
committerGitHub2021-07-04 18:18:49 +0530
commit0dde2f4241572e7ab07b6e6f9095b071449f6c0f (patch)
tree243b8841f0b787f2096ccc6c0a0a8a95cd99a331 /src/fun.h
parent66ab875f7a0de3acaa0c9e2b1a8eb4ebee5f2481 (diff)
parent0b968ae5124a37916f9ab901e91a11cd90ff81a4 (diff)
downloadfossee-scilab-octave-toolbox-0dde2f4241572e7ab07b6e6f9095b071449f6c0f.tar.gz
fossee-scilab-octave-toolbox-0dde2f4241572e7ab07b6e6f9095b071449f6c0f.tar.bz2
fossee-scilab-octave-toolbox-0dde2f4241572e7ab07b6e6f9095b071449f6c0f.zip
Merge pull request #7 from Detailer/masterHEADmaster
Added Support for Windows OS
Diffstat (limited to 'src/fun.h')
-rw-r--r--src/fun.h104
1 files changed, 67 insertions, 37 deletions
diff --git a/src/fun.h b/src/fun.h
index f79fbf4..cbc8800 100644
--- a/src/fun.h
+++ b/src/fun.h
@@ -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);
}