xref: /unit/src/nxt_var.h (revision 2128:1ed9f036a2df)
11563Svbart@nginx.com 
21563Svbart@nginx.com /*
31563Svbart@nginx.com  * Copyright (C) NGINX, Inc.
41563Svbart@nginx.com  */
51563Svbart@nginx.com 
61563Svbart@nginx.com #ifndef _NXT_VAR_H_INCLUDED_
71563Svbart@nginx.com #define _NXT_VAR_H_INCLUDED_
81563Svbart@nginx.com 
91563Svbart@nginx.com 
101563Svbart@nginx.com typedef struct nxt_var_s        nxt_var_t;
111563Svbart@nginx.com typedef struct nxt_var_query_s  nxt_var_query_t;
121563Svbart@nginx.com 
131563Svbart@nginx.com 
141563Svbart@nginx.com typedef nxt_int_t (*nxt_var_handler_t)(nxt_task_t *task,
151563Svbart@nginx.com                                        nxt_str_t *str,
161563Svbart@nginx.com                                        void *ctx);
171563Svbart@nginx.com 
181563Svbart@nginx.com typedef struct {
191563Svbart@nginx.com     nxt_str_t          name;
201563Svbart@nginx.com     nxt_var_handler_t  handler;
211563Svbart@nginx.com     uint32_t           index;
221563Svbart@nginx.com } nxt_var_decl_t;
231563Svbart@nginx.com 
241563Svbart@nginx.com 
251563Svbart@nginx.com nxt_inline nxt_bool_t
nxt_is_var(nxt_str_t * str)261563Svbart@nginx.com nxt_is_var(nxt_str_t *str)
271563Svbart@nginx.com {
281563Svbart@nginx.com     return (nxt_memchr(str->start, '$', str->length) != NULL);
291563Svbart@nginx.com }
301563Svbart@nginx.com 
311563Svbart@nginx.com 
321563Svbart@nginx.com nxt_int_t nxt_var_register(nxt_var_decl_t *decl, size_t n);
331563Svbart@nginx.com nxt_int_t nxt_var_index_init(void);
341959Sz.hong@f5.com nxt_var_t *nxt_var_compile(nxt_str_t *str, nxt_mp_t *mp, nxt_bool_t strz);
351563Svbart@nginx.com nxt_int_t nxt_var_test(nxt_str_t *str, u_char *error);
361563Svbart@nginx.com 
37*2128Sz.hong@f5.com void nxt_var_raw(nxt_var_t *var, nxt_str_t *str);
38*2128Sz.hong@f5.com nxt_bool_t nxt_var_is_const(nxt_var_t *var);
39*2128Sz.hong@f5.com 
401563Svbart@nginx.com nxt_int_t nxt_var_query_init(nxt_var_query_t **query_p, void *ctx,
411563Svbart@nginx.com     nxt_mp_t *mp);
421563Svbart@nginx.com void nxt_var_query(nxt_task_t *task, nxt_var_query_t *query,
431563Svbart@nginx.com     nxt_var_t *var, nxt_str_t *str);
441563Svbart@nginx.com void nxt_var_query_resolve(nxt_task_t *task, nxt_var_query_t *query, void *data,
451563Svbart@nginx.com     nxt_work_handler_t ready, nxt_work_handler_t error);
461563Svbart@nginx.com void nxt_var_query_handle(nxt_task_t *task, nxt_var_query_t *query,
471563Svbart@nginx.com     nxt_bool_t failed);
481563Svbart@nginx.com 
491563Svbart@nginx.com 
501563Svbart@nginx.com #endif /* _NXT_VAR_H_INCLUDED_ */
51