unfinished support for mobile device objects in server; code refactoring
[public/netxms.git] / include / nxsl.h
CommitLineData
cce155af
VK
1/*
2** NetXMS - Network Management System
22aa5156 3** Copyright (C) 2003-2011 Victor Kirhenshtein
cce155af
VK
4**
5** This program is free software; you can redistribute it and/or modify
65d2c384
VK
6** it under the terms of the GNU Lesser General Public License as published by
7** the Free Software Foundation; either version 3 of the License, or
cce155af
VK
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**
65d2c384 15** You should have received a copy of the GNU Lesser General Public License
cce155af
VK
16** along with this program; if not, write to the Free Software
17** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18**
375e0736 19** File: nxsl.h
cce155af
VK
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//
b36dc6ff
VK
38// Various defines
39//
40
41#define MAX_FUNCTION_NAME 64
42
43
44//
cd890184
VK
45// Script execution errors
46//
47
48#define NXSL_ERR_DATA_STACK_UNDERFLOW 1
49#define NXSL_ERR_CONTROL_STACK_UNDERFLOW 2
50#define NXSL_ERR_BAD_CONDITION 3
51#define NXSL_ERR_NOT_NUMBER 4
52#define NXSL_ERR_NULL_VALUE 5
53#define NXSL_ERR_INTERNAL 6
54#define NXSL_ERR_NO_MAIN 7
55#define NXSL_ERR_CONTROL_STACK_OVERFLOW 8
56#define NXSL_ERR_DIVIDE_BY_ZERO 9
57#define NXSL_ERR_REAL_VALUE 10
58#define NXSL_ERR_NO_FUNCTION 11
59#define NXSL_ERR_INVALID_ARGUMENT_COUNT 12
bd40de8f 60#define NXSL_ERR_TYPE_CAST 13
9e52272a
VK
61#define NXSL_ERR_NOT_OBJECT 14
62#define NXSL_ERR_NO_SUCH_ATTRIBUTE 15
2791a0c9 63#define NXSL_ERR_MODULE_NOT_FOUND 16
fa2b47a7 64#define NXSL_ERR_NOT_STRING 17
69aa75eb 65#define NXSL_ERR_REGEXP_ERROR 18
16ec9c2e 66#define NXSL_ERR_NOT_INTEGER 19
9c69cc80
VK
67#define NXSL_ERR_INVALID_OBJECT_OPERATION 20
68#define NXSL_ERR_BAD_CLASS 21
45ae7827 69#define NXSL_ERR_VARIABLE_ALREADY_EXIST 22
ffee16a5
VK
70#define NXSL_ERR_INDEX_NOT_INTEGER 23
71#define NXSL_ERR_NOT_ARRAY 24
c742e8c8 72#define NXSL_ERR_ASSIGNMENT_TO_CONSTANT 25
7eb5db40 73#define NXSL_ERR_NAMED_PARAM_REQUIERED 26
22aa5156 74#define NXSL_ERR_NOT_ITERATOR 27
cd890184
VK
75
76
77//
ea84fc85
VK
78// Special return codes for external functions
79//
80
81#define NXSL_STOP_SCRIPT_EXECUTION -1
82
83
84//
b36dc6ff
VK
85// Exportable classes
86//
87
88#ifdef __cplusplus
89#include <nxsl_classes.h>
375e0736
VK
90#else
91struct NXSL_Program;
b36dc6ff
VK
92#endif
93
94
95//
cce155af
VK
96// Functions
97//
98
4f0c7a63
VK
99#ifdef __cplusplus
100extern "C" {
101#endif
102
ccc34207 103NXSL_Program LIBNXSL_EXPORTABLE *NXSLCompile(const TCHAR *pszSource,
375e0736 104 TCHAR *pszError, int nBufSize);
ccc34207 105TCHAR LIBNXSL_EXPORTABLE *NXSLLoadFile(const TCHAR *pszFileName, DWORD *pdwFileSize);
cce155af 106
4f0c7a63
VK
107#ifdef __cplusplus
108}
109#endif
cce155af
VK
110
111#endif