diff options
Diffstat (limited to 'modules/xcos/src/cpp')
-rwxr-xr-x | modules/xcos/src/cpp/.deps/.dirstamp | 0 | ||||
-rwxr-xr-x | modules/xcos/src/cpp/.deps/libscixcos_algo_la-xcosUtilities.Plo | 280 | ||||
-rwxr-xr-x | modules/xcos/src/cpp/.dirstamp | 0 | ||||
-rwxr-xr-x | modules/xcos/src/cpp/.libs/libscixcos_algo_la-xcosUtilities.o | bin | 0 -> 12728 bytes | |||
-rwxr-xr-x | modules/xcos/src/cpp/libscixcos_algo_la-xcosUtilities.lo | 12 | ||||
-rwxr-xr-x | modules/xcos/src/cpp/xcosUtilities.cpp | 178 |
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 Binary files differnew file mode 100755 index 000000000..336e9b52b --- /dev/null +++ b/modules/xcos/src/cpp/.libs/libscixcos_algo_la-xcosUtilities.o 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; +} + |