- Started work on objects
[public/netxms.git] / include / nxsl.h
CommitLineData
cce155af
VK
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//
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
cd890184
VK
61
62
63//
b36dc6ff
VK
64// Exportable classes
65//
66
67#ifdef __cplusplus
68#include <nxsl_classes.h>
69#endif
70
71
72//
4f0c7a63 73// Script handle
cce155af
VK
74//
75
4f0c7a63 76typedef void * NXSL_SCRIPT;
cce155af
VK
77
78
79//
80// Functions
81//
82
4f0c7a63
VK
83#ifdef __cplusplus
84extern "C" {
85#endif
86
0b26d595
VK
87NXSL_SCRIPT LIBNXSL_EXPORTABLE NXSLCompile(TCHAR *pszSource,
88 TCHAR *pszError, int nBufSize);
89int LIBNXSL_EXPORTABLE NXSLRun(NXSL_SCRIPT hScript);
90TCHAR LIBNXSL_EXPORTABLE *NXSLGetRuntimeError(NXSL_SCRIPT hScript);
91void LIBNXSL_EXPORTABLE NXSLDestroy(NXSL_SCRIPT hScript);
92void LIBNXSL_EXPORTABLE NXSLDump(NXSL_SCRIPT hScript, FILE *pFile);
cce155af 93
4f0c7a63
VK
94#ifdef __cplusplus
95}
96#endif
cce155af
VK
97
98#endif