summaryrefslogtreecommitdiff
path: root/modules/xcos/src/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/xcos/src/cpp')
-rwxr-xr-xmodules/xcos/src/cpp/.deps/.dirstamp0
-rwxr-xr-xmodules/xcos/src/cpp/.deps/libscixcos_algo_la-xcosUtilities.Plo280
-rwxr-xr-xmodules/xcos/src/cpp/.dirstamp0
-rwxr-xr-xmodules/xcos/src/cpp/.libs/libscixcos_algo_la-xcosUtilities.obin0 -> 12728 bytes
-rwxr-xr-xmodules/xcos/src/cpp/libscixcos_algo_la-xcosUtilities.lo12
-rwxr-xr-xmodules/xcos/src/cpp/xcosUtilities.cpp178
6 files changed, 470 insertions, 0 deletions
diff --git a/modules/xcos/src/cpp/.deps/.dirstamp b/modules/xcos/src/cpp/.deps/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/xcos/src/cpp/.deps/.dirstamp
diff --git a/modules/xcos/src/cpp/.deps/libscixcos_algo_la-xcosUtilities.Plo b/modules/xcos/src/cpp/.deps/libscixcos_algo_la-xcosUtilities.Plo
new file mode 100755
index 000000000..6b0f3d9a1
--- /dev/null
+++ b/modules/xcos/src/cpp/.deps/libscixcos_algo_la-xcosUtilities.Plo
@@ -0,0 +1,280 @@
+src/cpp/libscixcos_algo_la-xcosUtilities.lo: src/cpp/xcosUtilities.cpp \
+ /usr/include/stdc-predef.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.h /usr/include/string.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h
+
+/usr/include/stdc-predef.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
diff --git a/modules/xcos/src/cpp/.dirstamp b/modules/xcos/src/cpp/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/xcos/src/cpp/.dirstamp
diff --git a/modules/xcos/src/cpp/.libs/libscixcos_algo_la-xcosUtilities.o b/modules/xcos/src/cpp/.libs/libscixcos_algo_la-xcosUtilities.o
new file mode 100755
index 000000000..336e9b52b
--- /dev/null
+++ b/modules/xcos/src/cpp/.libs/libscixcos_algo_la-xcosUtilities.o
Binary files differ
diff --git a/modules/xcos/src/cpp/libscixcos_algo_la-xcosUtilities.lo b/modules/xcos/src/cpp/libscixcos_algo_la-xcosUtilities.lo
new file mode 100755
index 000000000..e1a84813e
--- /dev/null
+++ b/modules/xcos/src/cpp/libscixcos_algo_la-xcosUtilities.lo
@@ -0,0 +1,12 @@
+# src/cpp/libscixcos_algo_la-xcosUtilities.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscixcos_algo_la-xcosUtilities.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/xcos/src/cpp/xcosUtilities.cpp b/modules/xcos/src/cpp/xcosUtilities.cpp
new file mode 100755
index 000000000..e7172aeb9
--- /dev/null
+++ b/modules/xcos/src/cpp/xcosUtilities.cpp
@@ -0,0 +1,178 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) DIGITEO - 2010-2010 - Clément DAVID <clement.david@scilab.org>
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+extern "C"
+{
+#include "api_scilab.h"
+#include "localization.h"
+#include "Scierror.h"
+#include "MALLOC.h"
+}
+
+/**
+ * Read a single boolean on the stack.
+ *
+ * @param _pvCtx private api context (opaque structure)
+ * @param rhsPosition the position on the stack.
+ * @param[out] out the read value.
+ * @param fname the function name used for the call.
+ * @return status of the operation (<> 0 on error)
+ */
+int readSingleBoolean(void* _pvCtx, int rhsPosition, bool* out, const char* fname)
+{
+ int* argumentPointer = NULL;
+ int rowsArgument = 0;
+ int colsArgument = 0;
+ int* value = NULL;
+
+ *out = false;
+ SciErr sciErr;
+
+ sciErr = getVarAddressFromPosition(_pvCtx, rhsPosition, &argumentPointer);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, rhsPosition);
+ return -1;
+ }
+
+ sciErr = getMatrixOfBoolean(_pvCtx, argumentPointer,
+ &rowsArgument, &colsArgument, NULL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, rhsPosition);
+ return -1;
+ }
+
+ if (rowsArgument != 1 || colsArgument != 1)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: A boolean expected.\n"), fname, rhsPosition);
+ return -1;
+ }
+
+ sciErr = getMatrixOfBoolean(_pvCtx, argumentPointer,
+ &rowsArgument, &colsArgument, &value);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, rhsPosition);
+ return -1;
+ }
+
+ *out = (*value == 0);
+ return 0;
+}
+
+/**
+ * Read a single string on the stack.
+ *
+ * @param _pvCtx private api context (opaque structure)
+ * @param rhsPosition the position on the stack.
+ * @param[out] out the read value.
+ * @param fname the function name used for the call.
+ * @return status of the operation (<> 0 on error)
+ */
+int readSingleString(void* _pvCtx, int rhsPosition, char** out, const char* fname)
+{
+ int* argumentPointer = NULL;
+ int rowsArgument = 0;
+ int colsArgument = 0;
+ int lenArgument = 0;
+ char* value = NULL;
+
+ *out = NULL;
+ SciErr sciErr;
+
+ sciErr = getVarAddressFromPosition(_pvCtx, rhsPosition, &argumentPointer);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, rhsPosition);
+ return -1;
+ }
+
+ sciErr = getMatrixOfString(_pvCtx, argumentPointer, &rowsArgument,
+ &colsArgument, NULL, NULL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, rhsPosition);
+ return -1;
+ }
+
+ if (rowsArgument != 1 || colsArgument != 1)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: A string expected.\n"), fname, rhsPosition);
+ return -1;
+ }
+
+ sciErr = getMatrixOfString(_pvCtx, argumentPointer, &rowsArgument,
+ &colsArgument, &lenArgument, NULL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, rhsPosition);
+ return -1;
+ }
+
+ value = (char*) MALLOC(sizeof(char) * (lenArgument + 1)); //+ 1 for null termination
+ value[lenArgument] = '\0';
+ sciErr = getMatrixOfString(_pvCtx, argumentPointer, &rowsArgument,
+ &colsArgument, &lenArgument, &value);
+ if (sciErr.iErr)
+ {
+ FREE(value);
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, rhsPosition);
+ return -1;
+ }
+
+ *out = value;
+ return 0;
+}
+
+/**
+ * Read a vector of string on the stack.
+ *
+ * @param _pvCtx private api context (opaque structure)
+ * @param rhsPosition the position on the stack.
+ * @param[out] out the read value.
+ * @param[out] vectorLength the length of the vector.
+ * @param fname the function name used for the call.
+ * @return status of the operation (<> 0 on error)
+ */
+int readVectorString(void* _pvCtx, int rhsPosition, char*** out, int* vectorLength, char* fname)
+{
+ int* argumentPointer = NULL;
+ int rowsArgument = 0;
+ int colsArgument = 0;
+
+ SciErr sciErr;
+
+ sciErr = getVarAddressFromPosition(_pvCtx, rhsPosition, &argumentPointer);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, rhsPosition);
+ return -1;
+ }
+
+ if (getAllocatedMatrixOfString(_pvCtx, argumentPointer, &rowsArgument, &colsArgument, out))
+ {
+ return -1;
+ }
+ *vectorLength = rowsArgument * colsArgument;
+
+ return 0;
+}
+