yumapro  23.10T-6
YumaPro SDK
Loading...
Searching...
No Matches
val_child.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2008 - 2012, Andy Bierman, All Rights Reserved.
3 * Copyright (c) 2012 - 2021, YumaWorks, Inc., All Rights Reserved.
4 *
5 * Unless required by applicable law or agreed to in writing,
6 * software distributed under the License is distributed on an
7 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8 * KIND, either express or implied. See the License for the
9 * specific language governing permissions and limitations
10 * under the License.
11 */
12#ifndef _H_val_child
13#define _H_val_child
14
15/* FILE: val_child.h
16*********************************************************************
17* *
18* P U R P O S E *
19* *
20*********************************************************************/
21
29/*********************************************************************
30* *
31* C H A N G E H I S T O R Y *
32* *
33*********************************************************************
34
35date init comment
36----------------------------------------------------------------------
3719-mar-16 abb Begun; split from val.c
38
39*/
40
41
42#ifndef _H_val
43#include "val.h"
44#endif
45
46#ifdef __cplusplus
47extern "C" {
48#endif
49
50/********************************************************************
51* *
52* C O N S T A N T S *
53* *
54*********************************************************************/
55
56
69/********************************************************************
70* *
71* T Y P E S *
72* *
73*********************************************************************/
75typedef enum val_child_op_t_ {
81
82
83/********************************************************************
84* *
85* F U N C T I O N S *
86* *
87*********************************************************************/
88
98extern status_t
100 val_value_t *parent);
101
102
113extern status_t
115 val_value_t *parent);
116
117
126extern status_t
128 val_value_t *parent);
129
130
139extern status_t
141 val_value_t *parent);
142
143
152extern val_value_t *
153 val_child_find (const val_value_t *parent,
154 const xmlChar *child_modname,
155 const xmlChar *child_name);
156
157
170extern val_value_t *
171 val_child_find_next (const val_value_t *parent,
172 const xmlChar *child_modname,
173 const xmlChar *child_name,
174 const val_value_t *lastmatch);
175
176
185extern val_value_t *
186 val_child_find_nsid (const val_value_t *parent,
187 xmlns_id_t child_nsid,
188 const xmlChar *child_name);
189
190
201extern val_value_t *
203 xmlns_id_t child_nsid,
204 const xmlChar *child_name,
205 val_value_t *curchild,
206 val_child_op_t child_op);
207
208
216extern val_value_t *
217 val_child_find_obj (const val_value_t *parent,
218 const obj_template_t *child_obj);
219
220
230extern val_value_t *
231 val_child_find_same (const val_value_t *child,
232 const val_value_t *parent,
233 val_child_op_t child_op);
234
235
245extern val_value_t *
247 const val_value_t *parent,
248 val_value_t *lastmatch,
249 val_child_op_t child_op);
250
251
263extern val_value_t *
264 val_child_find_count (const val_value_t *parent,
265 const xmlChar *child_modname,
266 const xmlChar *child_name,
267 uint32 *matchcount);
268
269
277extern val_child_hdr_t *
279 val_value_t *parent);
280
281
294extern val_child_hdr_t *
296 val_value_t *parent,
297 val_value_t *lastmatch);
298
299
310extern status_t
312 val_value_t *current,
313 val_value_t *parent,
314 op_insertop_t insert_op);
315
316
322extern void
324
325
333extern void
335
336
344extern void
346
347
355extern status_t
356 val_child_swap (val_value_t *newchild,
357 val_value_t *curchild);
358
359
366extern val_value_t *
367 val_child_first (const val_value_t *parent);
368
369
377extern val_value_t *
378 val_child_next (const val_value_t *curchild);
379
380
387extern val_value_t *
389
390
397extern val_value_t *
399
400
407extern val_value_t *
409
410
418extern val_value_t *
419 val_child_next_terminal (const val_value_t *curchild);
420
421
428extern uint32
430
431
443extern uint32
445 xmlns_id_t nsid,
446 const xmlChar *name,
447 val_value_t **firstval);
448
449
455extern void
456 val_child_clean_hdrQ (dlq_hdr_t *child_hdrQ);
457
458
459
488extern boolean
490 void *cookie1,
491 void *cookie2,
492 val_value_t *startnode,
493 xmlns_id_t mod_nsid,
494 const xmlChar *name,
495 boolean configonly,
496 boolean textmode);
497
498
530extern boolean
532 void *cookie1,
533 void *cookie2,
534 val_value_t *startnode,
535 xmlns_id_t mod_nsid,
536 const xmlChar *name,
537 boolean configonly,
538 boolean textmode,
539 boolean orself);
540
541
577extern boolean
579 void *cookie1,
580 void *cookie2,
581 val_value_t *startnode,
582 xmlns_id_t mod_nsid,
583 const xmlChar *name,
584 boolean configonly,
585 boolean textmode,
586 boolean orself,
587 boolean forceall);
588
589
590
626extern boolean
628 void *cookie1,
629 void *cookie2,
630 val_value_t *startnode,
631 xmlns_id_t mod_nsid,
632 const xmlChar *name,
633 boolean configonly,
634 boolean textmode,
635 boolean orself,
636 boolean forceall);
637
638
678extern boolean
680 void *cookie1,
681 void *cookie2,
682 val_value_t *startnode,
683 xmlns_id_t mod_nsid,
684 const xmlChar *name,
685 boolean configonly,
686 boolean dblslash,
687 boolean textmode,
688 ncx_xpath_axis_t axis);
689
690
730extern boolean
732 void *cookie1,
733 void *cookie2,
734 val_value_t *startnode,
735 xmlns_id_t mod_nsid,
736 const xmlChar *name,
737 boolean configonly,
738 boolean dblslash,
739 boolean textmode,
740 ncx_xpath_axis_t axis);
741
742
750extern void
752 val_value_t *destval);
753
754
781extern status_t
783 val_value_t *child,
784 val_value_t *parent,
785 dlq_hdr_t *cleanQ);
786
787
816extern status_t
818 val_value_t *child,
819 val_value_t *parent,
820 dlq_hdr_t *cleanQ,
821 boolean check_exists);
822
823
829extern void
831
832
838extern void
840
841
847extern void
849
850
865extern val_value_t *
867 val_hdr_test_fn_t hdr_test_fn,
868 val_test2_fn_t test_fn,
869 void *cookie);
870
871
886extern val_value_t *
888 val_hdr_test_fn_t hdr_test_fn,
889 val_test2_fn_t test_fn,
890 void *cookie);
891
892
899extern val_value_t *
901
902
909extern val_value_t *
911
912
920extern val_value_t *
922 const val_value_t *curval);
923
924
932extern val_value_t *
934 const val_value_t *curval);
935
936
944extern val_value_t *
946 const val_value_t *findval);
947
948
949
960extern boolean
961 val_child_find_deleted (const val_value_t *startnode,
962 const val_value_t *delnode);
963
964
968#ifdef __cplusplus
969} /* end extern 'C' */
970#endif
971
972#endif /* _H_val_child */
op_insertop_t
YANG insert operation types.
Definition: op.h:137
boolean val_child_find_all_pfaxis(val_walker2_fn_t walkerfn, void *cookie1, void *cookie2, val_value_t *startnode, xmlns_id_t mod_nsid, const xmlChar *name, boolean configonly, boolean dblslash, boolean textmode, ncx_xpath_axis_t axis)
Find all occurances of the specified node for the specified preceding or following axis.
Definition: val_child.c:3153
val_value_t * val_child_prev_same(val_value_t *curnode)
Get the previous node of the same type.
Definition: val_child.c:2456
status_t val_child_insert(val_value_t *child, val_value_t *current, val_value_t *parent, op_insertop_t insert_op)
Insert a child value node into a parent value node before or after the specified node.
Definition: val_child.c:2127
val_value_t * val_child_next_same(val_value_t *curnode)
Get the next node of the same type.
Definition: val_child.c:2429
val_value_t * val_child_hdr_first(const val_child_hdr_t *hdr)
Get the first entry in the child header.
Definition: val_child.c:3911
val_value_t * val_child_find_same_nsid(const val_value_t *parent, xmlns_id_t child_nsid, const xmlChar *child_name, val_value_t *curchild, val_child_op_t child_op)
Find the child node for the specified child name and modname.
Definition: val_child.c:1874
void val_child_mark_undeleted(val_value_t *child)
Re-Add a previously deleted child value node (unmark deleted)
Definition: val_child.c:2279
status_t val_child_add_clean(val_editvars_t *editvars, val_value_t *child, val_value_t *parent, dlq_hdr_t *cleanQ)
Add a child value node to a parent value node This is only called by the agent when adding nodes to a...
Definition: val_child.c:3435
val_value_t * val_child_hdr_previous(const val_child_hdr_t *hdr, const val_value_t *curval)
Get the previous entry in the child header.
Definition: val_child.c:3972
boolean val_child_find_all_children(val_walker2_fn_t walkerfn, void *cookie1, void *cookie2, val_value_t *startnode, xmlns_id_t mod_nsid, const xmlChar *name, boolean configonly, boolean textmode)
Find all children instances of the specified node(s) The walker fn will be called for each match.
Definition: val_child.c:2678
void val_child_move_children(val_value_t *srcval, val_value_t *destval)
Move all the child nodes from src to dest Source and dest must both be containers!
Definition: val_child.c:3372
boolean val_child_find_all_descendants(val_walker2_fn_t walkerfn, void *cookie1, void *cookie2, val_value_t *startnode, xmlns_id_t mod_nsid, const xmlChar *name, boolean configonly, boolean textmode, boolean orself, boolean forceall)
Find all occurances of the specified node within the current subtree.
Definition: val_child.c:2873
uint32 val_child_count_nsid(val_value_t *parent, xmlns_id_t nsid, const xmlChar *name, val_value_t **firstval)
Get the number of non-deleted children matching the NSID and namestring in this parent.
Definition: val_child.c:2596
val_value_t * val_child_first_terminal(const val_value_t *parent)
Get the first terminal node child present for this parent.
Definition: val_child.c:2484
status_t val_child_add_clean2(val_editvars_t *editvars, val_value_t *child, val_value_t *parent, dlq_hdr_t *cleanQ, boolean check_exists)
Add a child value node to a parent value node.
Definition: val_child.c:3482
val_child_hdr_t * val_child_find_hdr_lastmatch(val_value_t *child, val_value_t *parent, val_value_t *lastmatch)
Find the child header for the specified child based on the last match.
Definition: val_child.c:2094
void val_child_mark_default_undeleted(val_value_t *val)
Mark all the leaf-list nodes that are defaults as deleted.
Definition: val_child.c:3680
void val_child_clean_hdrQ(dlq_hdr_t *child_hdrQ)
Empty and clean a Q of child headers.
Definition: val_child.c:2630
void val_child_mark_default_deleted(val_value_t *val)
Mark all the leaf-list nodes that are defaults as deleted.
Definition: val_child.c:3599
val_value_t * val_child_next_terminal(const val_value_t *curchild)
Get the next terminal node child present for the current node Parent must be set.
Definition: val_child.c:2521
void val_child_finish_default_deleted(val_value_t *val)
Delete all the marked default leaf-list nodes.
Definition: val_child.c:3638
val_value_t * val_child_find_obj(const val_value_t *parent, const obj_template_t *child_obj)
Find the child node for the specified child object header.
Definition: val_child.c:1923
val_child_hdr_t * val_child_find_hdr(val_value_t *child, val_value_t *parent)
Find the child header for the specified child.
Definition: val_child.c:2068
val_value_t * val_child_hdr_next(const val_child_hdr_t *hdr, const val_value_t *curval)
Get the next entry in the child header.
Definition: val_child.c:3952
val_value_t * val_child_find_same_lastmatch(const val_value_t *child, const val_value_t *parent, val_value_t *lastmatch, val_child_op_t child_op)
Find the child header for the specified child.
Definition: val_child.c:1987
status_t val_child_add_last(val_value_t *child, val_value_t *parent)
Add a child value node as last node to a parent value node.
Definition: val_child.c:1641
boolean val_child_find_all_descendants_old(val_walker_fn_t walkerfn, void *cookie1, void *cookie2, val_value_t *startnode, xmlns_id_t mod_nsid, const xmlChar *name, boolean configonly, boolean textmode, boolean orself, boolean forceall)
Find all occurances of the specified node within the current subtree.
Definition: val_child.c:3013
val_value_t * val_child_hdr_find_match(val_child_hdr_t *hdr, const val_value_t *findval)
Find the matching entry in the hdr.
Definition: val_child.c:3992
status_t val_child_add_force(val_value_t *child, val_value_t *parent)
Add a child value node to a parent value node Force add even if Tree Insersion fails.
Definition: val_child.c:1684
boolean val_child_find_all_pfsibling_axis(val_walker2_fn_t walkerfn, void *cookie1, void *cookie2, val_value_t *startnode, xmlns_id_t mod_nsid, const xmlChar *name, boolean configonly, boolean dblslash, boolean textmode, ncx_xpath_axis_t axis)
Find all occurances of the specified node for the specified axis.
Definition: val_child.c:3286
val_value_t * val_child_find(const val_value_t *parent, const xmlChar *child_modname, const xmlChar *child_name)
Find the child node for the specified child name and modname.
Definition: val_child.c:1771
val_value_t * val_child_next_test(val_value_t *curchild, val_hdr_test_fn_t hdr_test_fn, val_test2_fn_t test_fn, void *cookie)
Get the next child present for this parent that passes the callback tests.
Definition: val_child.c:3810
status_t val_child_add(val_value_t *child, val_value_t *parent)
Add a child value node to a parent value node.
Definition: val_child.c:1598
val_value_t * val_child_next(const val_value_t *curchild)
Get the next child present for the current node Parent must be set.
Definition: val_child.c:2390
val_child_op_t
modify the procedure call to get the previous, same or next entry
Definition: val_child.h:75
status_t val_child_add_force_last(val_value_t *child, val_value_t *parent)
Add a child value node as last node to a parent value node Force if tree insertion fails.
Definition: val_child.c:1727
void val_child_remove(val_value_t *child)
Remove a child value node from its parent value node.
Definition: val_child.c:2194
boolean val_child_find_deleted(const val_value_t *startnode, const val_value_t *delnode)
Find the deleted node within the startnode.
Definition: val_child.c:4017
uint32 val_child_count(val_value_t *parent)
Get the number of non-deleted children in this parent.
Definition: val_child.c:2562
status_t val_child_swap(val_value_t *newchild, val_value_t *curchild)
Swap a child value node with a current value node.
Definition: val_child.c:2315
boolean val_child_find_all_ancestors(val_walker2_fn_t walkerfn, void *cookie1, void *cookie2, val_value_t *startnode, xmlns_id_t mod_nsid, const xmlChar *name, boolean configonly, boolean textmode, boolean orself)
Find all the ancestor instances of the specified node within the path to root from the current node; ...
Definition: val_child.c:2790
val_value_t * val_child_find_next(const val_value_t *parent, const xmlChar *child_modname, const xmlChar *child_name, const val_value_t *lastmatch)
Find the next child header for the specified child.
Definition: val_child.c:1804
void val_child_mark_deleted(val_value_t *child)
Remove a deleted child value node (mark deleted only)
Definition: val_child.c:2244
val_value_t * val_child_find_count(const val_value_t *parent, const xmlChar *child_modname, const xmlChar *child_name, uint32 *matchcount)
Find the child node for the specified child name and modname Get the first instance and also return t...
Definition: val_child.c:2029
val_value_t * val_child_find_nsid(const val_value_t *parent, xmlns_id_t child_nsid, const xmlChar *child_name)
Find the child node for the specified child name and namespace ID.
Definition: val_child.c:1841
val_value_t * val_child_first(const val_value_t *parent)
Get the first child present for this parent.
Definition: val_child.c:2356
val_value_t * val_child_first_test(val_value_t *parent, val_hdr_test_fn_t hdr_test_fn, val_test2_fn_t test_fn, void *cookie)
Get the first child present for this parent that passes the callback tests.
Definition: val_child.c:3726
val_value_t * val_child_hdr_last(const val_child_hdr_t *hdr)
Get the last entry in the child header.
Definition: val_child.c:3933
val_value_t * val_child_find_same(const val_value_t *child, const val_value_t *parent, val_child_op_t child_op)
Find the child header for the specified child, which is a different root; e.g., trying to match candi...
Definition: val_child.c:1953
@ VAL_CHILD_OP_SAME
get-exact
Definition: val_child.h:78
@ VAL_CHILD_OP_NONE
not set
Definition: val_child.h:76
@ VAL_CHILD_OP_PREV
get-previous
Definition: val_child.h:77
@ VAL_CHILD_OP_NEXT
get-next
Definition: val_child.h:79
boolean(* val_test2_fn_t)(val_value_t *val, void *cookie)
get first or next child test function value test function
Definition: val.h:1193
boolean(* val_walker2_fn_t)(val_child_hdr_t *valhdr, void *cookie1, void *cookie2)
child or descendant node search walker function - GEN2
Definition: val.h:1163
boolean(* val_walker_fn_t)(val_value_t *val, void *cookie1, void *cookie2)
child or descendant node search walker function
Definition: val.h:1147
boolean(* val_hdr_test_fn_t)(val_child_hdr_t *hdr, void *cookie)
get first or next child test function header test function
Definition: val.h:1179
status_t
global error return code
Definition: status_enum.h:210
uint16 xmlns_id_t
integer handle for registered namespaces
Definition: xmlns.h:89
ncx_xpath_axis_t
XPath expression axis types.
Definition: ncxtypes.h:662
One YANG data-def-stmt.
Definition: obj.h:1184
this struct is inserted in the val->v.child_hdrQ for container and list value nodes
Definition: val.h:1073
one set of edit-in-progress variables for one value node
Definition: val.h:823
one value to match one type
Definition: val.h:911
Value Node Basic Support.