1 /*
2 ** Zabbix
3 ** Copyright (C) 2001-2021 Zabbix SIA
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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18 **/
19 
20 #ifndef ZABBIX_ZBXEMBED_H
21 #define ZABBIX_ZBXEMBED_H
22 
23 #include "zbxjson.h"
24 
25 typedef struct zbx_es_env zbx_es_env_t;
26 
27 typedef struct
28 {
29 	zbx_es_env_t	*env;
30 }
31 zbx_es_t;
32 
33 void		zbx_es_init(zbx_es_t *es);
34 void		zbx_es_destroy(zbx_es_t *es);
35 int		zbx_es_init_env(zbx_es_t *es, char **error);
36 int		zbx_es_destroy_env(zbx_es_t *es, char **error);
37 int		zbx_es_is_env_initialized(zbx_es_t *es);
38 int		zbx_es_fatal_error(zbx_es_t *es);
39 int		zbx_es_compile(zbx_es_t *es, const char *script, char **code, int *size, char **error);
40 int		zbx_es_execute(zbx_es_t *es, const char *script, const char *code, int size, const char *param, char **output,
41 		char **error);
42 void		zbx_es_set_timeout(zbx_es_t *es, int timeout);
43 void		zbx_es_debug_enable(zbx_es_t *es);
44 void		zbx_es_debug_disable(zbx_es_t *es);
45 const char	*zbx_es_debug_info(const zbx_es_t *es);
46 
47 #endif /* ZABBIX_ZBXEMBED_H */
48