summaryrefslogtreecommitdiff
path: root/linux-x86/share/swig/scilab/scisequencestring.swg
diff options
context:
space:
mode:
Diffstat (limited to 'linux-x86/share/swig/scilab/scisequencestring.swg')
-rw-r--r--linux-x86/share/swig/scilab/scisequencestring.swg97
1 files changed, 97 insertions, 0 deletions
diff --git a/linux-x86/share/swig/scilab/scisequencestring.swg b/linux-x86/share/swig/scilab/scisequencestring.swg
new file mode 100644
index 0000000..d3c05e4
--- /dev/null
+++ b/linux-x86/share/swig/scilab/scisequencestring.swg
@@ -0,0 +1,97 @@
+/*
+ *
+ * Scilab matrix of string <-> C++ std::string container
+ *
+ */
+
+%include <scichar.swg>
+
+%fragment(SWIG_AsCheck_Sequence_frag(std::string), "header") {
+
+SWIGINTERN int
+SWIG_AsCheck_Sequence_dec(std::string)(SwigSciObject obj) {
+ SciErr sciErr;
+ int *piAddrVar;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, obj, &piAddrVar);
+ if (sciErr.iErr) {
+ printError(&sciErr, 0);
+ return SWIG_ERROR;
+ }
+
+ if (isStringType(pvApiCtx, piAddrVar)) {
+ return SWIG_OK;
+ }
+ else {
+ Scierror(SCILAB_API_ARGUMENT_ERROR, _("%s: Wrong type for input argument #%d: A string is expected.\n"), SWIG_Scilab_GetFuncName(), obj);
+ return SWIG_ERROR;
+ }
+}
+}
+
+%fragment(SWIG_AsGet_Sequence_frag(std::string), "header",
+ fragment="SWIG_SciString_AsCharPtrArrayAndSize") {
+
+SWIGINTERN int
+SWIG_AsGet_Sequence_dec(std::string)(SwigSciObject obj, char ***pSequence) {
+ int iRows = 0;
+ int iCols = 0;
+ return (SWIG_SciString_AsCharPtrArrayAndSize(pvApiCtx, obj, &iRows, &iCols, pSequence, SWIG_Scilab_GetFuncName()));
+}
+}
+
+%fragment(SWIG_AsSize_Sequence_frag(std::string), "header",
+ fragment="SWIG_SciString_AsCharPtrArrayAndSize") {
+
+SWIGINTERN int
+SWIG_AsSize_Sequence_dec(std::string)(SwigSciObject obj, int *piSize) {
+ char **pstMatrix;
+ int iCols = 0;
+ int iRows = 0;
+ if (SWIG_SciString_AsCharPtrArrayAndSize(pvApiCtx, obj, &iRows, &iCols, &pstMatrix, SWIG_Scilab_GetFuncName()) == SWIG_OK) {
+ *piSize = iRows * iCols;
+ return SWIG_OK;
+ }
+ return SWIG_ERROR;
+}
+}
+
+%fragment(SWIG_FromCreate_Sequence_frag(std::string), "header") {
+
+SWIGINTERN int
+SWIG_FromCreate_Sequence_dec(std::string)(int size, char ***pSequence) {
+ *pSequence = new char*[size];
+ return *pSequence != NULL ? SWIG_OK : SWIG_ERROR;
+}
+}
+
+%fragment(SWIG_FromSet_Sequence_frag(std::string), "header",
+ fragment="SWIG_SciString_FromCharPtrArrayAndSize") {
+
+SWIGINTERN SwigSciObject
+SWIG_FromSet_Sequence_dec(std::string)(int size, char **pSequence) {
+ SwigSciObject obj = SWIG_SciString_FromCharPtrArrayAndSize(pvApiCtx, SWIG_Scilab_GetOutputPosition(), 1, size, pSequence);
+ delete (char **)pSequence;
+ return obj;
+}
+}
+
+%fragment(SWIG_AsVal_SequenceItem_frag(std::string), "header") {
+
+SWIGINTERN std::string
+SWIG_AsVal_SequenceItem_dec(std::string)(SwigSciObject obj, char **pSequence, int iItemIndex) {
+ return std::string(pSequence[iItemIndex]);
+}
+}
+
+%fragment(SWIG_From_SequenceItem_frag(std::string), "header") {
+
+SWIGINTERN int
+SWIG_From_SequenceItem_dec(std::string)(char **pSequence, int iItemIndex, std::string itemValue) {
+ char *pChar = new char((int) itemValue.size() + 1);
+ strcpy(pChar, itemValue.c_str());
+ pSequence[iItemIndex] = pChar;
+ return SWIG_OK;
+}
+}
+