87#define XPATH_RESULT_CACHE_MAX 16
90#define XPATH_RESNODE_CACHE_MAX 64
94#define XP_AXIS_ANCESTOR (const xmlChar *)"ancestor"
95#define XP_AXIS_ANCESTOR_OR_SELF (const xmlChar *)"ancestor-or-self"
96#define XP_AXIS_ATTRIBUTE (const xmlChar *)"attribute"
97#define XP_AXIS_CHILD (const xmlChar *)"child"
98#define XP_AXIS_DESCENDANT (const xmlChar *)"descendant"
99#define XP_AXIS_DESCENDANT_OR_SELF (const xmlChar *)"descendant-or-self"
100#define XP_AXIS_FOLLOWING (const xmlChar *)"following"
101#define XP_AXIS_FOLLOWING_SIBLING (const xmlChar *)"following-sibling"
102#define XP_AXIS_NAMESPACE (const xmlChar *)"namespace"
103#define XP_AXIS_PARENT (const xmlChar *)"parent"
104#define XP_AXIS_PRECEDING (const xmlChar *)"preceding"
105#define XP_AXIS_PRECEDING_SIBLING (const xmlChar *)"preceding-sibling"
106#define XP_AXIS_SELF (const xmlChar *)"self"
109#define XP_FN_BOOLEAN (const xmlChar *)"boolean"
110#define XP_FN_CEILING (const xmlChar *)"ceiling"
111#define XP_FN_CONCAT (const xmlChar *)"concat"
112#define XP_FN_CONTAINS (const xmlChar *)"contains"
113#define XP_FN_COUNT (const xmlChar *)"count"
114#define XP_FN_CURRENT (const xmlChar *)"current"
115#define XP_FN_FALSE (const xmlChar *)"false"
116#define XP_FN_FLOOR (const xmlChar *)"floor"
117#define XP_FN_ID (const xmlChar *)"id"
118#define XP_FN_LANG (const xmlChar *)"lang"
119#define XP_FN_LAST (const xmlChar *)"last"
120#define XP_FN_LOCAL_NAME (const xmlChar *)"local-name"
121#define XP_FN_NAME (const xmlChar *)"name"
122#define XP_FN_NAMESPACE_URI (const xmlChar *)"namespace-uri"
123#define XP_FN_NORMALIZE_SPACE (const xmlChar *)"normalize-space"
124#define XP_FN_NOT (const xmlChar *)"not"
125#define XP_FN_NUMBER (const xmlChar *)"number"
126#define XP_FN_POSITION (const xmlChar *)"position"
127#define XP_FN_ROUND (const xmlChar *)"round"
128#define XP_FN_STARTS_WITH (const xmlChar *)"starts-with"
129#define XP_FN_STRING (const xmlChar *)"string"
130#define XP_FN_STRING_LENGTH (const xmlChar *)"string-length"
131#define XP_FN_SUBSTRING (const xmlChar *)"substring"
132#define XP_FN_SUBSTRING_AFTER (const xmlChar *)"substring-after"
133#define XP_FN_SUBSTRING_BEFORE (const xmlChar *)"substring-before"
134#define XP_FN_SUM (const xmlChar *)"sum"
135#define XP_FN_TRANSLATE (const xmlChar *)"translate"
136#define XP_FN_TRUE (const xmlChar *)"true"
140#define XP_FN_MODULE_LOADED (const xmlChar *)"module-loaded"
141#define XP_FN_FEATURE_ENABLED (const xmlChar *)"feature-enabled"
144#define XP_FN_REMATCH (const xmlChar *)"re-match"
145#define XP_FN_DEREF (const xmlChar *)"deref"
146#define XP_FN_DERIVED_FROM (const xmlChar *)"derived-from"
147#define XP_FN_DERIVED_FROM_OR_SELF (const xmlChar *)"derived-from-or-self"
148#define XP_FN_ENUM_VALUE (const xmlChar *)"enum-value"
149#define XP_FN_BIT_IS_SET (const xmlChar *)"bit-is-set"
152#define XP_NT_COMMENT (const xmlChar *)"comment"
153#define XP_NT_TEXT (const xmlChar *)"text"
154#define XP_NT_PROCESSING_INSTRUCTION \
155 (const xmlChar *)"processing-instruction"
156#define XP_NT_NODE (const xmlChar *)"node"
159#define XP_OP_AND (const xmlChar *)"and"
160#define XP_OP_OR (const xmlChar *)"or"
161#define XP_OP_DIV (const xmlChar *)"div"
162#define XP_OP_MOD (const xmlChar *)"mod"
185#define XP_URL_ESC_WILDCARD '-'
201#define XP_FL_DYNNODE bit0
207#define XP_FL_SKIP_MODE bit1
213#define XP_FL_LOAD_IMPORT bit2
217#define XP_FL_ABSPATH bit3
223#define XP_FL_CONFIGONLY bit4
229#define XP_FL_USEROOT bit5
234#define XP_FL_INSTANCEID bit6
240#define XP_FL_SCHEMA_INSTANCEID bit7
249#define XP_FL_TOP_RPC_INPUT bit8
258#define XP_FL_ACTION_INPUT bit9
264#define XP_FL_NACM_GET2 bit10
270#define XP_FL_KEEP_RESULT bit11
274#define XP_FL_FOUND_PRED bit12
279#define XP_FL_GET_WHEN bit13
285#define XP_FL_FROM_DBLSLASH bit14
291#define XP_FL_EMPTY_GET bit15
300#define XP_FL_BACKPTR_CDIRTY bit0
303#define XP_FL_BACKPTR_RDIRTY bit1
306#define XP_FL_BACKPTR_SDIRTY bit2
316#define XPATH_GET_TYPE(P) (P)->xpath_type
319#define XPATH_GET_RESTYPE(R) (R)->restype
322#define XPATH_NACM_GET2(P) ((P)->flags & XP_FL_NACM_GET2)
325#define XPATH_NONCONFIG_WARN(P) (P)->nonconfig_warn_obj
328#define XPATH_VAL_CXT(P) ((P)->val || (P)->val_get2)
331#define XPATH_ANY_CXT(P) ((P)->val || (P)->val_get2 || (P)->obj)
334#define XPATH_SCB(P) (P)->scb
337#define XPATH_GET2CB_OBJ(N) (N)->cb->obj
340#define XPATH_MHDR(P) (P)->mhdr
343#define XPATH_EXPRSTR(P) (P)->exprstr
346#define XPATH_SET_DISABLED_OBJ_OK(P) (P)->disabled_obj_ok = TRUE
349#define XPATH_CLR_DISABLED_OBJ_OK(P) (P)->disabled_obj_ok = FALSE
352#define XPATH_DISABLED_OBJ_OK(P) (P)->disabled_obj_ok
355#define XPATH_ROOTCB(P) (P)->rootcb
358#define XPATH_SET_FROM_DBLSLASH(P) (P)->flags |= XP_FL_FROM_DBLSLASH
361#define XPATH_IS_FROM_DBLSLASH(P) ((P)->flags & XP_FL_FROM_DBLSLASH)
364#define XPATH_SET_EMPTY_GET(P) (P)->flags |= XP_FL_EMPTY_GET
367#define XPATH_IS_EMPTY_GET(P) ((P)->flags & XP_FL_EMPTY_GET)
370#define XPATH_WHEN_OBJ(P) (P)->when_obj
380typedef enum xpath_restype_t_ {
389typedef enum xpath_curmode_t_ {
400typedef enum xpath_document_t_ {
412typedef enum xpath_source_t_ {
423typedef enum xpath_exop_t_ {
448typedef enum xpath_nodetype_t_ {
460typedef enum xpath_rntype_t_ {
472typedef enum xpath_get2_state_t_ {
485typedef enum xpath_get2_form_t_ {
510 (*xpath_getvar_fn_t) (
struct xpath_pcb_t_ *pcb,
511 const xmlChar *varname,
562typedef struct xpath_get2_cb_t_ {
610typedef struct xpath_get2_node_t_ {
666typedef struct xpath_resnode_t_ {
705typedef struct xpath_result_t_ {
736typedef struct xpath_pred_ent_t_ {
754typedef struct xpath_pcb_t_ {
772 xmlTextReaderPtr reader;
1061typedef struct xpath_fncb_t_ {
1077typedef struct xpath_walkerparms_t_ {
1091typedef struct xpath_compwalkerparms_t_ {
1119typedef struct xpath_stringwalkerparms_t_ {
1135typedef struct xpath_aio_cb_t_ {
1209 dlq_hdr_t *datadefQ,
1210 const xmlChar *target,
1254 dlq_hdr_t *datadefQ,
1255 const xmlChar *target,
1292 dlq_hdr_t *datadefQ,
1293 const xmlChar *target,
1353 const xmlChar *target,
1456 const xmlChar *target,
1532 const xmlChar *exprstr);
1650 const xmlChar *prefix,
1676 const xmlChar *prefix,
1679 const xmlChar **modname);
1702 const xmlChar **modname,
1703 const xmlChar **modrev);
1726 const xmlChar *prefix,
2084 const xmlChar *expr,
2142extern const xmlChar *
2198 const xmlChar *keyval);
dlq provides general double-linked list and queue support:
status_t
global error return code
Definition: status_enum.h:210
void xpath_clear_load_import(xpath_pcb_t *pcb)
Clear the PCB out of load import mode.
Definition: xpath.c:4917
void xpath_nodeset_swap_valptr(xpath_result_t *result, val_value_t *oldval, val_value_t *newval)
Check if the result has the oldval ptr and if so, replace it with the newval ptr.
Definition: xpath.c:4416
val_value_t * xpath_get_resnode_val(xpath_resnode_t *resnode)
Get the resnode value pointer from a resnode, if any.
Definition: xpath.c:4268
void xpath_clear_nodeset_result(xpath_result_t *result)
Clear all the nodes from the node-set result.
Definition: xpath.c:4807
boolean xpath_check_backptrs_dirty(xpath_pcb_t *pcb, ncx_cfg_t cfg_id)
Check the backptrs_dirty flag in the PCB.
Definition: xpath.c:4642
status_t xpath_set_result(xpath_pcb_t *pcb, xpath_result_t *result)
Set the result field to save a result with the PCB.
Definition: xpath.c:5378
void xpath_init_result(xpath_result_t *result, xpath_restype_t restype)
Initialize an XPath result struct.
Definition: xpath.c:3168
uint32 xpath_resnode_count(xpath_result_t *result)
Get the number of resnodes in the node-set.
Definition: xpath.c:4761
xpath_pcb_t * xpath_new_session_pcb(ses_cb_t *scb, const xmlChar *expr, status_t *res)
Get a new XPath parser control block for a session.
Definition: xpath.c:4844
const xmlChar * xpath_get_restype_str(xpath_restype_t restype)
Get the string for the specific result type.
Definition: xpath.c:4999
boolean xpath_cvt_boolean(const xpath_result_t *result)
Convert an XPath result to a boolean answer.
Definition: xpath.c:3744
obj_template_t * xpath_get_resnode_obj(xpath_resnode_t *resnode)
Get the resnode object pointer from a value resnode.
Definition: xpath.c:4205
void xpath_init_resnode(xpath_resnode_t *resnode)
Initialize an XPath result node struct.
Definition: xpath.c:3314
status_t xpath_find_schema_target_int(const xmlChar *target, obj_template_t **targobj)
@
Definition: xpath.c:2548
status_t xpath_parse_token(xpath_pcb_t *pcb, tk_type_t tktype)
Parse the XPath token sequence for a specific token type.
Definition: xpath.c:3691
boolean xpath_result_is_get2(xpath_result_t *result)
Check if the result is a node-set for GET2 nodes.
Definition: xpath.c:5348
val_value_t * xpath_next_resnode_valptr(xpath_resnode_t *resnode, val_value_t *valptr)
Get the next node val pointer from a result node struct.
Definition: xpath.c:4152
xpath_resnode_t * xpath_get_first_resnode(xpath_result_t *result)
Get the first result in the renodeQ from a result struct.
Definition: xpath.c:4055
dlq_hdr_t * xpath_get_varbindQ(xpath_pcb_t *pcb)
Get the varbindQ from a parser control block struct.
Definition: xpath.c:4326
status_t xpath_find_schema_target_force_mod(yang_pcb_t *pcb, tk_chain_t *tkc, ncx_module_t *mod, ncx_module_t *force_mod, obj_template_t *obj, dlq_hdr_t *datadefQ, const xmlChar *target, obj_template_t **targobj, dlq_hdr_t **targQ)
find target, save in *targobj, force the module
Definition: xpath.c:2412
void xpath_free_pcb(xpath_pcb_t *pcb)
Free a malloced XPath parser control block.
Definition: xpath.c:3065
void xpath_move_nodeset(xpath_result_t *srcresult, xpath_result_t *destresult)
Move the nodes from a nodeset reult into the target nodeset result.
Definition: xpath.c:4355
void * xpath_get_load_import(xpath_pcb_t *pcb)
Get the PCB in load import mode.
Definition: xpath.c:4939
boolean xpath_check_manual_clear(xpath_pcb_t *pcb)
Check the backptrs_dirty flag in the PCB is clearly manually only.
Definition: xpath.c:4686
void xpath_set_load_import(xpath_pcb_t *pcb, void *yang_pcb)
Set the PCB in load import mode.
Definition: xpath.c:4895
xpath_pcb_t * xpath_new_pcb(const xmlChar *xpathstr, xpath_getvar_fn_t getvar_fn)
malloc a new XPath parser control block
Definition: xpath.c:2844
void xpath_discard_resnode(xpath_resnode_t *resnode)
Discard a result node.
Definition: xpath.c:4786
void xpath_free_result(xpath_result_t *result)
Free a malloced XPath result struct.
Definition: xpath.c:3207
void xpath_cvt_number(const xpath_result_t *result, ncx_num_t *num)
Convert an XPath result to a number answer.
Definition: xpath.c:3807
status_t xpath_find_schema_target_restconf(const xmlChar *target, obj_template_t **targobj)
Find a schema target for RESTCONF.
Definition: xpath.c:2586
status_t xpath_add_to_result(xpath_result_t *source, xpath_result_t *target)
Move the resnodes from 1 XPath result to another.
Definition: xpath.c:4731
boolean xpath_need_get2_processing(xpath_result_t *result)
Check if the result nodeset contains any XP_RNT_GET2 nodes.
Definition: xpath.c:4965
status_t xpath_find_data_target_pcb(xpath_pcb_t *pcb, obj_template_t **targobj)
Find schema target for a datastore node.
Definition: xpath.c:2669
xpath_resnode_t * xpath_get_next_resnode(xpath_resnode_t *resnode)
Get the next result in the renodeQ from a result struct.
Definition: xpath.c:4083
void xpath_set_manual_clear(xpath_pcb_t *pcb)
Set the manual clear mode flag in the PCB.
Definition: xpath.c:4706
xpath_resnode_t * xpath_get_first_real_resnode(xpath_result_t *result)
Get the first result in the renodeQ from a result struct.
Definition: xpath.c:5314
status_t xpath_find_val_unique(val_value_t *startval, ncx_module_t *mod, const xmlChar *target, val_value_t *root, boolean logerrors, boolean configonly, xpath_pcb_t **retpcb)
Find the data node for a unique-stmt target.
Definition: xpath.c:2766
void xpath_free_resnode(xpath_resnode_t *resnode)
Free a malloced XPath result node struct.
Definition: xpath.c:3335
status_t xpath_cvt_string(xpath_pcb_t *pcb, const xpath_result_t *result, xmlChar **str)
Convert an XPath result to a string answer.
Definition: xpath.c:3943
boolean xpath_find_obj_in_result(xpath_result_t *result, obj_template_t *obj)
Find the object pointer in the specified result.
Definition: xpath.c:5052
xpath_pcb_t * xpath_find_pcb(dlq_hdr_t *pcbQ, const xmlChar *exprstr)
Find an XPath PCB.
Definition: xpath.c:3036
void xpath_delete_resnode(xpath_resnode_t *resnode)
Delete and free a malloced XPath result node struct.
Definition: xpath.c:3362
void xpath_free_pred_ent(xpath_pred_ent_t *ent)
Free a malloced XPath predicate entry struct.
Definition: xpath.c:5174
xpath_result_t * xpath_new_result(xpath_restype_t restype)
malloc an XPath result
Definition: xpath.c:3135
status_t xpath_make_load_path(const xmlChar *target, xmlChar **retbuff)
Convert the schema path string to the internal canonical format.
Definition: xpath.c:5433
void xpath_set_backptrs_dirty(xpath_pcb_t *pcb, ncx_cfg_t cfg_id, boolean dirty)
Set the backptrs_dirty flag in the PCB.
Definition: xpath.c:4593
xmlChar * xpath_convert_url_to_path(const xmlChar *urlpath, ncx_name_match_t match_names, boolean alt_naming, boolean wildcards, boolean withkeys, boolean fullkeys, boolean withmod, ncx_protocol_t proto, status_t *res)
Convert a URL format path to XPath format path.
Definition: xpath.c:4526
boolean xpath_expr_ok_for_nolock_get(xpath_pcb_t *pcb)
Check an XPath expression to see if it contains any top-level config=true data nodes or not.
Definition: xpath.c:5198
xpath_resnode_t * xpath_new_resnode(void)
Create and initialize an XPath result node struct.
Definition: xpath.c:3286
status_t xpath_get_curmod_from_prefix_str(xpath_pcb_t *pcb, const xmlChar *prefix, uint32 prefixlen, ncx_module_t *mod, ncx_module_t **targmod)
Get the correct module to use for a given prefix Unended string version.
Definition: xpath.c:3638
xpath_pcb_t * xpath_new_pcb_ex(const xmlChar *xpathstr, xpath_getvar_fn_t getvar_fn, void *cookie)
malloc a new XPath parser control block Extended
Definition: xpath.c:2874
status_t xpath_get_modinfo_from_prefix(const xmlChar *prefix, ncx_module_t *mod, const xmlChar **modname, const xmlChar **modrev)
Get the correct module name/revision to use for a given prefix.
Definition: xpath.c:3558
status_t xpath_find_schema_target_load(const xmlChar *target, boolean for_mp, obj_template_t **targobj)
@
Definition: xpath.c:2624
void xpath_set_keep_result(xpath_pcb_t *pcb)
Set the keep-result flag in the PCB.
Definition: xpath.c:5028
boolean xpath_expr_has_predicates(xpath_pcb_t *pcb)
Check if any predicates parsed in the expression.
Definition: xpath.c:5091
xpath_result_t * xpath_get_result(xpath_pcb_t *pcb)
Get the result from a PCB.
Definition: xpath.c:5399
status_t xpath_find_schema_target_err(yang_pcb_t *pcb, tk_chain_t *tkc, ncx_module_t *mod, obj_template_t *obj, dlq_hdr_t *datadefQ, const xmlChar *target, obj_template_t **targobj, dlq_hdr_t **targQ, ncx_error_t *tkerr)
find target, save in *targobj, use the errtk if error
Definition: xpath.c:2481
status_t xpath_get_curmod_from_prefix(xpath_pcb_t *pcb, const xmlChar *prefix, ncx_module_t *mod, ncx_module_t **targmod)
Get the correct module to use for a given prefix.
Definition: xpath.c:3417
obj_template_t * xpath_get_cxt_obj(xpath_pcb_t *pcb)
Get the object pointer for the context node.
Definition: xpath.c:4251
void xpath_nodeset_delete_valptr(xpath_result_t *result, val_value_t *oldval)
Check if the result has the oldval ptr and if so, delete it.
Definition: xpath.c:4450
boolean xpath_nodeset_empty(const xpath_result_t *result)
Check if the result is an empty nodeset.
Definition: xpath.c:4387
dlq_hdr_t * xpath_get_resnodeQ(xpath_result_t *result)
Get the renodeQ from a result struct.
Definition: xpath.c:4029
boolean xpath_expr_scan_predicates(xpath_pcb_t *pcb)
Check if any predicates parsed in the expression.
Definition: xpath.c:5114
void xpath_clean_resnode(xpath_resnode_t *resnode)
Clean an XPath result node struct.
Definition: xpath.c:3384
status_t xpath_find_schema_target(yang_pcb_t *pcb, tk_chain_t *tkc, ncx_module_t *mod, obj_template_t *obj, dlq_hdr_t *datadefQ, const xmlChar *target, obj_template_t **targobj, dlq_hdr_t **targQ)
Find the schema target, save in *targobj.
Definition: xpath.c:2350
xpath_pred_ent_t * xpath_new_pred_ent(obj_template_t *keyobj, const xmlChar *keyval)
Malloc and init an XPath predicate entry struct.
Definition: xpath.c:5150
val_value_t * xpath_first_resnode_valptr(xpath_resnode_t *resnode)
Get the first result in the renodeQ from a result struct.
Definition: xpath.c:4106
xpath_pcb_t * xpath_clone_pcb(const xpath_pcb_t *srcpcb)
Clone an XPath PCB.
Definition: xpath.c:2927
status_t xpath_find_val_target(val_value_t *startval, ncx_module_t *mod, const xmlChar *target, val_value_t **targval)
Find the XPath value node target.
Definition: xpath.c:2718
void xpath_clean_result(xpath_result_t *result)
Clean an XPath result struct.
Definition: xpath.c:3235
status_t xpath_get_curmod_from_prefix2(xpath_pcb_t *pcb, const xmlChar *prefix, ncx_module_t *mod, ncx_module_t **targmod, const xmlChar **modname)
Get the correct module to use for a given prefix Return found module name if returning not-found erro...
Definition: xpath.c:3455
obj_template_t * xpath_get_resnode_objptr(xpath_resnode_t *resnode)
Get the result node object pointer (obsolete)
Definition: xpath.c:4303
xpath_source_t
XPath expression source type.
Definition: xpath.h:412
xpath_curmode_t
XPath dynamic parsing mode for leafref.
Definition: xpath.h:389
xpath_restype_t
XPath expression result type.
Definition: xpath.h:380
xpath_rntype_t
XPath resnode union types.
Definition: xpath.h:460
xpath_exop_t
XPath expression operation type.
Definition: xpath.h:423
xpath_nodetype_t
XPath expression node types.
Definition: xpath.h:448
xpath_get2_form_t
GET2 control block forms.
Definition: xpath.h:485
xpath_get2_state_t
GET2 retrieval states.
Definition: xpath.h:472
xpath_document_t
document root type.
Definition: xpath.h:400
ncx_var_t *(* xpath_getvar_fn_t)(struct xpath_pcb_t_ *pcb, const xmlChar *varname, status_t *res)
XPath GET variable callback function.
Definition: xpath.h:510
status_t(* xpath_bool_eval_fn_t)(struct xpath_pcb_t_ *pcb, val_value_t *context, val_value_t *docroot, boolean *result)
XPath Boolean EVAL Replacement Callback.
Definition: xpath.h:551
xpath_result_t *(* xpath_fn_t)(xpath_pcb_t *pcb, dlq_hdr_t *parmQ, status_t *res)
XPath function prototype.
Definition: xpath.h:1051
@ XP_SRC_NONE
not set
Definition: xpath.h:413
@ XP_SRC_SCHEMA_INSTANCEID
schema-instance-identifier
Definition: xpath.h:417
@ XP_SRC_INSTANCEID
instance-identifier
Definition: xpath.h:416
@ XP_SRC_LEAFREF
leafref path
Definition: xpath.h:414
@ XP_SRC_XML
NETCONF select filter.
Definition: xpath.h:418
@ XP_SRC_YANG
YANG must or when.
Definition: xpath.h:415
@ XP_CM_NONE
not set
Definition: xpath.h:390
@ XP_CM_TARGET
target mode (normal)
Definition: xpath.h:391
@ XP_CM_KEYVAR
key variable mode
Definition: xpath.h:393
@ XP_CM_ALT
alternate mode
Definition: xpath.h:392
@ XP_RT_NODESET
node-set result
Definition: xpath.h:382
@ XP_RT_STRING
string result
Definition: xpath.h:384
@ XP_RT_NONE
not set
Definition: xpath.h:381
@ XP_RT_NUMBER
number result
Definition: xpath.h:383
@ XP_RT_BOOLEAN
boolean result
Definition: xpath.h:385
@ XP_RNT_NONE
not set
Definition: xpath.h:461
@ XP_RNT_VAL
valptr
Definition: xpath.h:463
@ XP_RNT_GET2
get2ptr
Definition: xpath.h:465
@ XP_RNT_OBJ
objnode
Definition: xpath.h:462
@ XP_RNT_VALHDR
valhdr
Definition: xpath.h:464
@ XP_EXOP_NEGATE
unary '-'
Definition: xpath.h:438
@ XP_EXOP_SUBTRACT
minus '-'
Definition: xpath.h:434
@ XP_EXOP_DIV
keyword 'div'
Definition: xpath.h:436
@ XP_EXOP_GT
right angle bracket '>'
Definition: xpath.h:430
@ XP_EXOP_OR
keyword 'or'
Definition: xpath.h:426
@ XP_EXOP_AND
keyword 'and'
Definition: xpath.h:425
@ XP_EXOP_NONE
not set
Definition: xpath.h:424
@ XP_EXOP_LEQUAL
l.
Definition: xpath.h:431
@ XP_EXOP_NOTEQUAL
bang equals '!='
Definition: xpath.h:428
@ XP_EXOP_FILTER2
double fwd slash (C++ comment)
Definition: xpath.h:441
@ XP_EXOP_MULTIPLY
asterisk '*'
Definition: xpath.h:435
@ XP_EXOP_FILTER1
fwd slash '/'
Definition: xpath.h:440
@ XP_EXOP_UNION
vert.
Definition: xpath.h:439
@ XP_EXOP_GEQUAL
r.
Definition: xpath.h:432
@ XP_EXOP_MOD
keyword 'mod'
Definition: xpath.h:437
@ XP_EXOP_EQUAL
equals '='
Definition: xpath.h:427
@ XP_EXOP_LT
left angle bracket '<'
Definition: xpath.h:429
@ XP_EXOP_ADD
plus sign '+'
Definition: xpath.h:433
@ XP_EXNT_TEXT
text node
Definition: xpath.h:451
@ XP_EXNT_PROC_INST
processing instruction
Definition: xpath.h:452
@ XP_EXNT_COMMENT
comment node
Definition: xpath.h:450
@ XP_EXNT_NODE
XML start, empty, or end tag.
Definition: xpath.h:453
@ XP_EXNT_NONE
not set
Definition: xpath.h:449
@ XP_FORM_GETCB
normal GET2 CB
Definition: xpath.h:487
@ XP_FORM_GETCB_CHILD
child node CB
Definition: xpath.h:489
@ XP_FORM_GETCB_TERM
terminal node CB
Definition: xpath.h:488
@ XP_FORM_NONE
not set
Definition: xpath.h:486
@ XP_RST_GET2_DONE
GET2 callback done.
Definition: xpath.h:477
@ XP_RST_GET2_SKIPPED
GET2 callback skipped.
Definition: xpath.h:475
@ XP_RST_GET2_ERROR
GET2 callback error happened.
Definition: xpath.h:478
@ XP_RST_GET2_START
GET2 callback starting.
Definition: xpath.h:476
@ XP_RST_GET2_PENDING
GET2 callback pending.
Definition: xpath.h:474
@ XP_RST_NONE
not set
Definition: xpath.h:473
@ XP_DOC_DATABASE
datastore context
Definition: xpath.h:402
@ XP_DOC_NONE
not set
Definition: xpath.h:401
@ XP_DOC_RPC_REPLY
rpc-output context
Definition: xpath.h:404
@ XP_DOC_NOTIFICATION
notification context
Definition: xpath.h:405
@ XP_DOC_RPC
rpc-input context
Definition: xpath.h:403
ncx_cfg_t
hardwire the 3 standard configs
Definition: ncxtypes.h:548
ncx_protocol_t
NCX session protocol versions supported.
Definition: ncxtypes.h:1001
ncx_name_match_t
Node name match modes.
Definition: ncxtypes.h:695
ncx_xpath_type_t
enumeration for different XPath back pointer types
Definition: ncxtypes.h:1287
ncx_xpath_axis_t
XPath expression axis types.
Definition: ncxtypes.h:662
tk_type_t
different types of tokens parsed during 1st pass
Definition: tk.h:279
YANG module data structures Many internal representations of YANG module constructs.
Global error messages for status code enumerations.
YANG error info statement struct used to override default error handling in the server.
Definition: ncxtypes.h:1366
struct to remember error info tkc->cur_err will be checked before tkc->cur for error information
Definition: ncxtypes.h:877
representation of one module or submodule during and after parsing
Definition: ncxtypes.h:1138
Schema Mount Root Control Block used in the object template.
Definition: ncxtypes.h:1893
struct of NCX user variable mapping for yangcli
Definition: var.h:131
One YANG data-def-stmt.
Definition: obj.h:1229
Session Control Block.
Definition: ses.h:573
token parsing chain (main parser control block)
Definition: tk.h:415
this struct is inserted in the val->v.child_hdrQ for container and list value nodes
Definition: val.h:1074
one value to match one type
Definition: val.h:912
Common Encoding Message Header No longer XML specific!! Used by JSON and CBOR parsing as well!...
Definition: xml_msg.h:404
AIO Subtree respresentation.
Definition: xpath.h:1135
obj_template_t * obj
backptr to object for this subtree
Definition: xpath.h:1146
dlq_hdr_t qhdr
queue header
Definition: xpath.h:1137
xpath_get2_cb_t * get2cb_cb
backptr to parent GET2CB XPath node control block for the top AIO object
Definition: xpath.h:1142
dlq_hdr_t valQ
Queue of val_value that represent the current complex level object.
Definition: xpath.h:1154
Value node compare walker fn callback parameters.
Definition: xpath.h:1091
ncx_num_t * cmpnum
compare number
Definition: xpath.h:1099
uint32 buffsize
size of internal buffer
Definition: xpath.h:1105
xmlChar * cmpstring
compare string
Definition: xpath.h:1096
xpath_exop_t exop
relational expression operation
Definition: xpath.h:1108
status_t res
status of walker operation
Definition: xpath.h:1114
boolean cmpresult
compare result
Definition: xpath.h:1111
xmlChar * buffer
buffer for internal use
Definition: xpath.h:1102
xpath_result_t * result2
internal result storage
Definition: xpath.h:1093
XPath function control block.
Definition: xpath.h:1061
xpath_fn_t fn
callback pointer for XPath function
Definition: xpath.h:1072
xpath_restype_t restype
expected result type
Definition: xpath.h:1066
int32 parmcnt
parameter count: -1 == N, 0..N == actual cnt
Definition: xpath.h:1069
const xmlChar * name
function name
Definition: xpath.h:1063
Special XPath GET2 state record to be used instead of val_value_t or val_child_hdr_t pointers.
Definition: xpath.h:562
obj_template_t * obj
the GET2 callback is expected to be in this object
Definition: xpath.h:569
dlq_hdr_t return_keyQ
If the get2cb is NULL then this is an expanded get2 CB for a YANG list.
Definition: xpath.h:599
xpath_get2_state_t get2_state
current state of this entry
Definition: xpath.h:566
dlq_hdr_t return_termQ
Q of val_value_t *.
Definition: xpath.h:600
struct xpath_get2_cb_t_ * parent_cb
parent control block used if parent_val not used
Definition: xpath.h:582
dlq_hdr_t qhdr
queue header
Definition: xpath.h:563
val_value_t * parent_val
only 1 of these 2 pointers should be set they are both back-pointers and not malloced here
Definition: xpath.h:579
struct getcb_get2_t_ * get2cb
the getcb for this retrieval, ancestor keys in parent_val or parent_cb
Definition: xpath.h:587
val_value_t * val
dummy value for container or list control block DO NOT USE DIRECTLY FOR CHILDREN OR PARENT
Definition: xpath.h:574
dlq_hdr_t lookupQ
Q of getcb_get2_lookup_t.
Definition: xpath.h:602
Special XPath GET2 resnode.
Definition: xpath.h:610
xpath_get2_form_t form
the form field determines the type of get2 node
Definition: xpath.h:655
val_value_t * val
if 'val' is not set then this resnode represents the object node for a container or list; if set then...
Definition: xpath.h:622
xpath_get2_cb_t * cb
the 'cb' is always set and is a back-pointer to the xpath_cb_t stored in the pcb get2_cbQ the 'val' p...
Definition: xpath.h:616
XPath parser control block.
Definition: xpath.h:754
ncx_error_t tkerr
saved error info for the agent to process
Definition: xpath.h:965
obj_template_t * obj
these parms are used by leafref and XPath1 parsing obj is a bptr to start object
Definition: xpath.h:828
obj_template_t * docroot
document root.
Definition: xpath.h:845
boolean missing_errors
T: missing node is error.
Definition: xpath.h:808
xpath_source_t source
the prefixes in the QNames in the exprstr MUST be resolved in different contexts.
Definition: xpath.h:784
void * yang_pcb
backptr to yang parser control block in progress used to force an inline import instead of returning ...
Definition: xpath.h:974
uint32 resnode_count
The count of entries in the resnode_cacheQ.
Definition: xpath.h:933
boolean backptrs_mode
must/when/data-rule obj_template_t backptr caching support backptrs in use
Definition: xpath.h:938
ncx_module_t * objmod
module containing obj.
Definition: xpath.h:834
obj_template_t * altobj
bptr to pred.
Definition: xpath.h:817
dlq_hdr_t resnode_cacheQ
Q of xpath_resnode_t.
Definition: xpath.h:927
dlq_hdr_t get2_aio_cbQ
if AIO GET2 callbacks needed to process the XPath expression then The Subtree returned from AIO GET2 ...
Definition: xpath.h:1013
uint8 backptrs_flags
internal state for backptr handling
Definition: xpath.h:944
ncx_xpath_type_t xpath_type
expression context
Definition: xpath.h:947
obj_template_t * nonconfig_warn_obj
backptr to object causing nonconfig warning if that is being checked in the obj_walker_fn callback in...
Definition: xpath.h:1004
ncx_errinfo_t errinfo
must-stmt error info.
Definition: xpath.h:790
boolean backptrs_manual_clear
manual clear of backptrs needed
Definition: xpath.h:941
obj_template_t * varobj
bptr to key-expr LHS object
Definition: xpath.h:820
xpath_curmode_t curmode
select targ/alt/var obj
Definition: xpath.h:823
boolean logerrors
T: use log_error F: suppress error messages.
Definition: xpath.h:797
dlq_hdr_t qhdr
queue header in case saved in a Q
Definition: xpath.h:756
const struct xpath_fncb_t_ * functions
The function Q is a copy of the global Q It is not hardwired in case app-specific extensions are adde...
Definition: xpath.h:905
struct getcb_get2_t_ * get2cb
the getcb for a NACM data rule test
Definition: xpath.h:996
void * cookie
The cookie registered with the getvar_fn.
Definition: xpath.h:893
obj_template_t * targobj
these parms are used to parse leafref path-arg limited object tree syntax allowed only targobj is bpt...
Definition: xpath.h:814
ncx_module_t * rootmod
YPW-1416: track module in progress during deviation validation of leafref type replacement.
Definition: xpath.h:842
dlq_hdr_t result_cacheQ
Performance Caches.
Definition: xpath.h:921
xpath_resnode_t context
additive XPath1 context back- pointer to current step results.
Definition: xpath.h:879
uint32 flags
internal processing flags for managing XPath state
Definition: xpath.h:870
obj_template_t * startobj
start object set for rpc,notif validation
Definition: xpath.h:848
ncx_sm_rootcb_t * rootcb
YPW-2079: backptr for current ROOTCB; used in leafref processing.
Definition: xpath.h:1024
ses_cb_t * scb
backptr to session control block in progress.
Definition: xpath.h:988
status_t validateres
validation stage result
Definition: xpath.h:959
xpath_getvar_fn_t getvar_fn
The getvar_fn callback function may be set to allow user variables to be supported in this XPath expr...
Definition: xpath.h:890
boolean disabled_obj_ok
YPW-1774: need to ignore if-feature=false while validating leafref path-stmt.
Definition: xpath.h:1021
obj_template_t * when_obj
check special context rules for when-stmt If the when_obj is set then the original context and this o...
Definition: xpath.h:1031
xpath_result_t * context_result
internal context result during processing
Definition: xpath.h:885
xml_msg_hdr_t * mhdr
backptr to the message header in progress if processing an XPath select filter for NETCONF
Definition: xpath.h:993
dlq_hdr_t pred_entQ
Internal state processing, Q of xpath_pred_ent_t.
Definition: xpath.h:999
tk_chain_t * tkc
token chain for exprstr, Often saved and reset each evaluation so the parse is done only once
Definition: xpath.h:762
val_value_t * val
saved state for the current() function result
Definition: xpath.h:851
struct xpath_get2_node_t_ * val_get2
YPW-1342 the context node can be one of the following nodes.
Definition: xpath.h:867
xpath_document_t doctype
document context for this evaluation
Definition: xpath.h:857
dlq_hdr_t get2_cbQ
if GET2 callbacks needed to process the XPath expression then they will be stored in this queue and x...
Definition: xpath.h:981
status_t valueres
evaluation stage result
Definition: xpath.h:962
status_t parseres
first and second pass parsing results.
Definition: xpath.h:956
val_value_t * val_docroot
cfg->root for db
Definition: xpath.h:854
boolean logwrongtype
T: log wrong-type warnings.
Definition: xpath.h:805
boolean seen
internal yangdiff support
Definition: xpath.h:968
ncx_module_t * impmod
[sub]module containing obj
Definition: xpath.h:837
xpath_result_t * result
The XPath result for this evaluation.
Definition: xpath.h:873
uint32 result_count
The count of entries in the result_cacheQ.
Definition: xpath.h:930
boolean xpath_predicate
true when processing a predicate
Definition: xpath.h:950
dlq_hdr_t varbindQ
The varbindQ may be used instead of the getvar_fn to store user variables to be supported in this XPa...
Definition: xpath.h:899
quick processing of NACM data rule predicates.
Definition: xpath.h:736
obj_template_t * keyobj
backptr to schema tree
Definition: xpath.h:738
dlq_hdr_t qhdr
queue header
Definition: xpath.h:737
const xmlChar * keyval
backptr to token value
Definition: xpath.h:739
XPath result node struct.
Definition: xpath.h:666
dlq_hdr_t qhdr
queue header
Definition: xpath.h:668
boolean aioval
flag indicating the XP_RNT_VAL node type came from a GET2 AIO value tree
Definition: xpath.h:678
boolean dblslash
double slash mode means the shorthand for the descendant-or-self axis was used
Definition: xpath.h:673
xpath_rntype_t rntype
The result node type is the union discriminator for node_.
Definition: xpath.h:681
XPath expression result.
Definition: xpath.h:705
dlq_hdr_t qhdr
queue header in case saved in a Q
Definition: xpath.h:707
xpath_restype_t restype
XPath result type.
Definition: xpath.h:710
Value node stringify walker fn callback parameters.
Definition: xpath.h:1119
uint32 buffsize
size of buffer
Definition: xpath.h:1124
status_t res
result of stringify operation
Definition: xpath.h:1130
xmlChar * buffer
buffer used for stringifying the node-set
Definition: xpath.h:1121
uint32 buffpos
current buffer position
Definition: xpath.h:1127
Value or object node walker fn callback parameters.
Definition: xpath.h:1077
status_t res
status field to continue or exit walk
Definition: xpath.h:1082
dlq_hdr_t * resnodeQ
Q of xpath_resnode_t being checked.
Definition: xpath.h:1079
ncx_xpath_axis_t axis
axis parameter in use
Definition: xpath.h:1085
YANG parser control block.
Definition: yang.h:204
NCX Syntax Token Handler.
union of all the basic number types if float not supported, then it is stored as an int64
Definition: ncxtypes.h:784
if the result->isval flag is false then the objptr is used in all resnodes in that result
Definition: xpath.h:692
val_child_hdr_t * valhdr
result is a value node header
Definition: xpath.h:695
obj_template_t * objptr
object for YANG validation mode
Definition: xpath.h:693
val_value_t * valptr
result is a plain value node
Definition: xpath.h:694
xpath_get2_node_t get2node
result is a GET2 state node
Definition: xpath.h:696
result r contains the appropiate data depending on restype
Definition: xpath.h:716
ncx_num_t num
numeric result
Definition: xpath.h:724
boolean boo
boolean result
Definition: xpath.h:721
xmlChar * str
string result
Definition: xpath.h:727
Value Node Basic Support.
YANG Module parser utilities.