xref: /unit/src/nxt_js.h (revision 2450:14277f21a722)
12247Sz.hong@f5.com 
22247Sz.hong@f5.com /*
32247Sz.hong@f5.com  * Copyright (C) NGINX, Inc.
42247Sz.hong@f5.com  */
52247Sz.hong@f5.com 
62247Sz.hong@f5.com #ifndef _NXT_JS_H_INCLUDED_
72247Sz.hong@f5.com #define _NXT_JS_H_INCLUDED_
82247Sz.hong@f5.com 
92247Sz.hong@f5.com #if (NXT_HAVE_NJS)
102247Sz.hong@f5.com 
112247Sz.hong@f5.com #include <njs_main.h>
122247Sz.hong@f5.com 
132247Sz.hong@f5.com 
142247Sz.hong@f5.com typedef struct nxt_js_s       nxt_js_t;
152247Sz.hong@f5.com typedef struct nxt_js_conf_s  nxt_js_conf_t;
162247Sz.hong@f5.com 
172247Sz.hong@f5.com 
182247Sz.hong@f5.com typedef struct {
192247Sz.hong@f5.com     njs_vm_t            *vm;
202247Sz.hong@f5.com     njs_value_t         array;
212247Sz.hong@f5.com } nxt_js_cache_t;
222247Sz.hong@f5.com 
232247Sz.hong@f5.com 
24*2450Sz.hong@f5.com njs_mod_t *nxt_js_module_loader(njs_vm_t *vm, njs_external_ptr_t external,
25*2450Sz.hong@f5.com     njs_str_t *name);
26*2450Sz.hong@f5.com nxt_js_conf_t *nxt_js_conf_new(nxt_mp_t *mp, nxt_bool_t test);
272318Sz.hong@f5.com void nxt_js_conf_release(nxt_js_conf_t *jcf);
282248Sz.hong@f5.com void nxt_js_set_proto(nxt_js_conf_t *jcf, njs_external_t *proto, nxt_uint_t n);
29*2450Sz.hong@f5.com nxt_int_t nxt_js_add_module(nxt_js_conf_t *jcf, nxt_str_t *name,
30*2450Sz.hong@f5.com     nxt_str_t *text);
312247Sz.hong@f5.com nxt_js_t *nxt_js_add_tpl(nxt_js_conf_t *jcf, nxt_str_t *str, nxt_bool_t strz);
322247Sz.hong@f5.com nxt_int_t nxt_js_compile(nxt_js_conf_t *jcf);
332247Sz.hong@f5.com nxt_int_t nxt_js_test(nxt_js_conf_t *jcf, nxt_str_t *str, u_char *error);
34*2450Sz.hong@f5.com nxt_int_t nxt_js_call(nxt_task_t *task, nxt_js_conf_t *jcf,
35*2450Sz.hong@f5.com     nxt_js_cache_t *cache, nxt_js_t *js, nxt_str_t *str, void *ctx);
362318Sz.hong@f5.com void nxt_js_release(nxt_js_cache_t *cache);
37*2450Sz.hong@f5.com nxt_int_t nxt_js_error(njs_vm_t *vm, u_char *error);
382247Sz.hong@f5.com 
392247Sz.hong@f5.com 
402248Sz.hong@f5.com extern njs_int_t  nxt_js_proto_id;
412248Sz.hong@f5.com 
422248Sz.hong@f5.com 
432247Sz.hong@f5.com #endif /* NXT_HAVE_NJS */
442247Sz.hong@f5.com 
452247Sz.hong@f5.com #endif /* _NXT_JS_H_INCLUDED_ */
46