82825b8a5f99d90f064bf9fb1417f7c3e6111c19
[scilab.git] / scilab / modules / functions / sci_gateway / cpp / sci_getCurrentThreadId.cpp
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET
4  *
5  *  This file must be used under the terms of the CeCILL.
6  *  This source file is licensed as described in the file COPYING, which
7  *  you should have received as part of this distribution.  The terms
8  *  are also available at
9  *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 extern "C"
14 {
15 #include "Thread_Wrapper.h"
16 #include "Scierror.h"
17 #include "localization.h"
18 }
19
20 #include "functions_gw.hxx"
21 #include "configvariable.hxx"
22 #include "function.hxx"
23
24 using namespace types;
25
26 Function::ReturnValue sci_getCurrentThreadId(types::typed_list &in, int _iRetCount, types::typed_list &out)
27 {
28     if (in.size() != 0)
29     {
30         Scierror(999, _("%s: Wrong number of input arguments: %d expected.\n"), "getCurrentThreadId" , 0);
31         return Function::Error;
32     }
33
34     if (_iRetCount != 1)
35     {
36         Scierror(999, _("%s: Wrong number of output arguments: %d expected.\n"), "getCurrentThreadId" , 1);
37         return Function::Error;
38     }
39
40     out.push_back(ConfigVariable::getLastRunningThread());
41
42     return Function::OK;
43 }