License Header change: Removed the LICENSE_END before beta
[scilab.git] / scilab / modules / api_scilab / src / cpp / template / api_pointer.hpp
1 /*
2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2015 - Scilab Enterprises - Antoine ELIAS
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 #include "gatewaystruct.hxx"
16 #include "pointer.hxx"
17
18 extern "C"
19 {
20 #include "api_scilab.h"
21 }
22
23 scilabVar API_PROTO(createPointer)(scilabEnv env, void* val)
24 {
25     return (scilabVar)new types::Pointer(val);
26 }
27
28 scilabStatus API_PROTO(getPointer)(scilabEnv env, scilabVar var, void** val)
29 {
30     types::Pointer* p = (types::Pointer*)var;
31 #ifdef __API_SCILAB_SAFE__
32     if (p->isPointer() == false)
33     {
34         scilab_setInternalError(env, L"getPointer", _W("var must be a pointer variable"));
35         return STATUS_ERROR;
36     }
37 #endif
38     *val = p->get();
39     return STATUS_OK;
40 }
41
42 scilabStatus API_PROTO(setPointer)(scilabEnv env, scilabVar var, void* val)
43 {
44     types::Pointer* p = (types::Pointer*)var;
45 #ifdef __API_SCILAB_SAFE__
46     if (p->isPointer() == false)
47     {
48         scilab_setInternalError(env, L"setPointer", _W("var must be a pointer variable"));
49         return STATUS_ERROR;
50     }
51 #endif
52     p->set(val);
53     return STATUS_OK;
54 }