Fixed broken popup menu actions on "Interfaces" tab
[public/netxms.git] / include / nxsl.h
CommitLineData
cce155af
VK
1/*
2** NetXMS - Network Management System
05b12e83 3** Copyright (C) 2003-2012 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
05b12e83
VK
36/**
37 * Various defines
38 */
b36dc6ff
VK
39#define MAX_FUNCTION_NAME 64
40
05b12e83
VK
41/**
42 * Script execution errors
43 */
64d10e08 44#define NXSL_ERR_SUCCESS 0
cd890184
VK
45#define NXSL_ERR_DATA_STACK_UNDERFLOW 1
46#define NXSL_ERR_CONTROL_STACK_UNDERFLOW 2
47#define NXSL_ERR_BAD_CONDITION 3
48#define NXSL_ERR_NOT_NUMBER 4
49#define NXSL_ERR_NULL_VALUE 5
50#define NXSL_ERR_INTERNAL 6
51#define NXSL_ERR_NO_MAIN 7
52#define NXSL_ERR_CONTROL_STACK_OVERFLOW 8
53#define NXSL_ERR_DIVIDE_BY_ZERO 9
54#define NXSL_ERR_REAL_VALUE 10
55#define NXSL_ERR_NO_FUNCTION 11
56#define NXSL_ERR_INVALID_ARGUMENT_COUNT 12
bd40de8f 57#define NXSL_ERR_TYPE_CAST 13
9e52272a
VK
58#define NXSL_ERR_NOT_OBJECT 14
59#define NXSL_ERR_NO_SUCH_ATTRIBUTE 15
2791a0c9 60#define NXSL_ERR_MODULE_NOT_FOUND 16
fa2b47a7 61#define NXSL_ERR_NOT_STRING 17
69aa75eb 62#define NXSL_ERR_REGEXP_ERROR 18
16ec9c2e 63#define NXSL_ERR_NOT_INTEGER 19
9c69cc80
VK
64#define NXSL_ERR_INVALID_OBJECT_OPERATION 20
65#define NXSL_ERR_BAD_CLASS 21
45ae7827 66#define NXSL_ERR_VARIABLE_ALREADY_EXIST 22
ffee16a5
VK
67#define NXSL_ERR_INDEX_NOT_INTEGER 23
68#define NXSL_ERR_NOT_ARRAY 24
c742e8c8 69#define NXSL_ERR_ASSIGNMENT_TO_CONSTANT 25
7eb5db40 70#define NXSL_ERR_NAMED_PARAM_REQUIERED 26
22aa5156 71#define NXSL_ERR_NOT_ITERATOR 27
05b12e83
VK
72#define NXSL_ERR_NO_STAT_DATA 28
73#define NXSL_ERR_NO_SUCH_STAT_PARAM 29
49fbe41f 74#define NXSL_ERR_NO_SUCH_METHOD 30
18321496 75#define NXSL_ERR_NO_SUCH_CONSTANT 31
f40f0e07 76#define NXSL_ERR_EXECUTION_ABORTED 32
cd890184 77
05b12e83
VK
78/**
79 * Special return codes for external functions
80 */
ea84fc85
VK
81#define NXSL_STOP_SCRIPT_EXECUTION -1
82
05b12e83
VK
83/**
84 * Exportable classes
85 */
b36dc6ff
VK
86#ifdef __cplusplus
87#include <nxsl_classes.h>
375e0736
VK
88#else
89struct NXSL_Program;
b36dc6ff
VK
90#endif
91
05b12e83
VK
92/**
93 * Functions
94 */
4f0c7a63
VK
95#ifdef __cplusplus
96extern "C" {
97#endif
98
967893bb 99NXSL_Program LIBNXSL_EXPORTABLE *NXSLCompile(const TCHAR *pszSource, TCHAR *pszError, int nBufSize);
6b29839d 100NXSL_VM LIBNXSL_EXPORTABLE *NXSLCompileAndCreateVM(const TCHAR *pszSource, TCHAR *pszError, int nBufSize, NXSL_Environment *env);
967893bb 101TCHAR LIBNXSL_EXPORTABLE *NXSLLoadFile(const TCHAR *pszFileName, UINT32 *pdwFileSize);
cce155af 102
4f0c7a63
VK
103#ifdef __cplusplus
104}
105#endif
cce155af
VK
106
107#endif