bug 14821: getio function added.
[scilab.git] / scilab / modules / io / sci_gateway / cpp / sci_getio.cpp
1 /*
2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2007 - INRIA - Allan CORNET
4 * Copyright (C) 2016 - Scilab Enterprises - Adeline CARNIS
5 *
6 * Copyright (C) 2012 - 2016 - Scilab Enterprises
7 *
8 * This file is hereby licensed under the terms of the GNU GPL v2.0,
9 * pursuant to article 5.3.4 of the CeCILL v.2.1.
10 * This file was originally licensed under the terms of the CeCILL v2.1,
11 * and continues to be available under such terms.
12 * For more information, see the COPYING file which you should have received
13 * along with this program.
14 *
15 */
16 /*--------------------------------------------------------------------------*/
17 #include "diary_manager.hxx"
18 #include <vector>
19
20 extern "C"
21 {
22 #include "gw_io.h"
23 #include "api_scilab.h"
24 #include "Scierror.h"
25 #include "localization.h"
26 #include "gw_output_stream.h"
27 }
28
29 static const char fname[] = "getio";
30 /*--------------------------------------------------------------------------*/
31 int sci_getio(scilabEnv env, int nin, scilabVar* in, int nopt, scilabOpt opt, int nout, scilabVar* out)
32 {
33
34         if (nin != 0)
35         {
36                 Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), fname, 0);
37                 return 1;
38         }
39
40         if (nout != 1)
41         {
42                 Scierror(78, _("%s: Wrong number of output argument(s): %d expected.\n"), fname, 1);
43                 return 1;
44         }
45
46     //get diarys count
47     int diary = 0;
48     int* diarys = getDiaryIDs(&diary);
49     //don't care about ids
50     delete[] diarys;
51
52     //create data values array
53     std::vector<double> val = {5, 5, (double)diary, 6};
54     //create output matrix
55     scilabVar var = scilab_createDoubleMatrix2d(env, 1, 4, 0);
56     //fill it
57     scilab_setDoubleArray(env, var, val.data());
58     //return it to scilab
59     out[0] = var;
60         return 0;
61 }