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