df12b325f529cc3927234a169ea69445addae51f
[scilab.git] / scilab / modules / core / sci_gateway / cpp / sci_getmemory.cpp
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2013 - Scilab Enterprises - Cedric Delamarre
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15
16 #include "core_gw.hxx"
17 #include "function.hxx"
18 #include "configvariable.hxx"
19 #include "double.hxx"
20
21 extern "C"
22 {
23 #include "localization.h"
24 #include "Scierror.h"
25 #include "getmemory.h"
26 }
27
28 types::Function::ReturnValue sci_getmemory(types::typed_list &in, int _iRetCount, types::typed_list &out)
29 {
30     if (in.size() > 0)
31     {
32         Scierror(77, _("%s: Wrong number of input argument(s): %d expected."), "funcprot", 0);
33         return types::Function::Error;
34     }
35
36     if (_iRetCount > 2)
37     {
38         Scierror(77, _("%s: Wrong number of output argument(s): %d expected."), "funcprot", 2);
39         return types::Function::Error;
40     }
41
42     out.push_back(new types::Double((double)getfreememory()));
43
44     if (_iRetCount == 2)
45     {
46         out.push_back(new types::Double((double)getmemorysize()));
47     }
48
49     return types::Function::OK;
50 }