- VErsion number changed to 0.2.9-dev
[public/netxms.git] / include / nxsl.h
1 /*
2 ** NetXMS - Network Management System
3 ** Copyright (C) 2005 Victor Kirhenshtein
4 **
5 ** This program is free software; you can redistribute it and/or modify
6 ** it under the terms of the GNU General Public License as published by
7 ** the Free Software Foundation; either version 2 of the License, or
8 ** (at your option) any later version.
9 **
10 ** This program is distributed in the hope that it will be useful,
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ** GNU General Public License for more details.
14 **
15 ** You should have received a copy of the GNU General Public License
16 ** along with this program; if not, write to the Free Software
17 ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 **
19 ** $module: nxsl.h
20 **
21 **/
22
23 #ifndef _nxsl_h_
24 #define _nxsl_h_
25
26 #ifdef _WIN32
27 #ifdef LIBNXSL_EXPORTS
28 #define LIBNXSL_EXPORTABLE __declspec(dllexport)
29 #else
30 #define LIBNXSL_EXPORTABLE __declspec(dllimport)
31 #endif
32 #else /* _WIN32 */
33 #define LIBNXSL_EXPORTABLE
34 #endif
35
36
37 //
38 // Script execution errors
39 //
40
41 #define NXSL_ERR_DATA_STACK_UNDERFLOW 1
42 #define NXSL_ERR_CONTROL_STACK_UNDERFLOW 2
43 #define NXSL_ERR_BAD_CONDITION 3
44 #define NXSL_ERR_NOT_NUMBER 4
45 #define NXSL_ERR_NULL_VALUE 5
46 #define NXSL_ERR_INTERNAL 6
47 #define NXSL_ERR_NO_MAIN 7
48 #define NXSL_ERR_CONTROL_STACK_OVERFLOW 8
49 #define NXSL_ERR_DIVIDE_BY_ZERO 9
50 #define NXSL_ERR_REAL_VALUE 10
51 #define NXSL_ERR_NO_FUNCTION 11
52 #define NXSL_ERR_INVALID_ARGUMENT_COUNT 12
53
54
55 //
56 // Script handle
57 //
58
59 typedef void * NXSL_SCRIPT;
60
61
62 //
63 // Functions
64 //
65
66 #ifdef __cplusplus
67 extern "C" {
68 #endif
69
70 NXSL_SCRIPT LIBNXSL_EXPORTABLE NXSLCompile(TCHAR *pszSource,
71 TCHAR *pszError, int nBufSize);
72 int LIBNXSL_EXPORTABLE NXSLRun(NXSL_SCRIPT hScript);
73 TCHAR LIBNXSL_EXPORTABLE *NXSLGetRuntimeError(NXSL_SCRIPT hScript);
74 void LIBNXSL_EXPORTABLE NXSLDestroy(NXSL_SCRIPT hScript);
75 void LIBNXSL_EXPORTABLE NXSLDump(NXSL_SCRIPT hScript, FILE *pFile);
76
77 #ifdef __cplusplus
78 }
79 #endif
80
81 #endif