notify added.
[scilab.git] / scilab / modules / action_binding / sci_gateway / cpp / sci_notify.cpp
1 /*
2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2009 - DIGITEO - Vincent COUVERT
4 * Copyright (C) 2011 - DIGITEO - Cedric DELAMARRE
5 *
6 * This file must be used under the terms of the CeCILL.
7 * This source file is licensed as described in the file COPYING, which
8 * you should have received as part of this distribution.  The terms
9 * are also available at
10 * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11 *
12 */
13 /*--------------------------------------------------------------------------*/
14 #include "function.hxx"
15 #include "action_binding_GiwsExports.hxx"
16 #include "action_binding_gw.hxx"
17 #include "string.hxx"
18
19 extern "C"
20 {
21 #include "localization.h"
22 #include "Scierror.h"
23 #include "MALLOC.h"
24 #include "getScilabJavaVM.h"
25 }
26
27 /*--------------------------------------------------------------------------*/
28 types::Function::ReturnValue sci_notify(types::typed_list &in, int _iRetCount, types::typed_list &out)
29 {
30     types::String* pString  = NULL;
31     wchar_t* wcsInput       = NULL;
32
33     if(in.size() != 1)
34     {
35         ScierrorW(999, _W("%ls: Wrong number of input arguments: %d expected.\n"), L"notify" , 1);
36         return types::Function::Error;
37     }
38     if(in[0]->isString() == false)
39     {
40         ScierrorW(999, _W("%ls: Wrong type for input argument #%d: A string expected.\n"), L"notify", 1);
41         return types::Function::Error;
42     }
43     pString = in[0]->getAs<types::String>();
44
45     if(pString->isScalar() == FALSE)
46     {
47         ScierrorW(999, _W("%ls: Wrong size for input argument #%d: A string expected.\n"), L"notify" , 1);
48         return types::Function::Error;
49     }
50     wcsInput = pString->get(0);
51
52     char* strInput = wide_string_to_UTF8(wcsInput);
53     Signal_notify(getScilabJavaVM(), strInput);
54     FREE(strInput);
55
56     return types::Function::OK;
57 }
58 /*--------------------------------------------------------------------------*/