![]() |
yumapro
25.10-1
YumaPro SDK
|
NCX Lists are simple string based lists. More...

Functions | |
| ncx_list_t * | ncx_new_list (ncx_btype_t btyp) |
| Malloc Initialize an allocated ncx_list_t. More... | |
| void | ncx_free_list (ncx_list_t *list) |
| Clean and free an allocated ncx_list_t. More... | |
| uint32 | ncx_list_cnt (const ncx_list_t *list) |
| Get the number of entries in the list. More... | |
| uint32 | ncx_list_linelen (const ncx_list_t *list) |
| Get the length of the string if the list was printed in 1 line with spaces between the entries. More... | |
| int32 | ncx_compare_lists (const ncx_list_t *list1, const ncx_list_t *list2) |
| Compare 2 ncx_list_t struct contents. More... | |
| status_t | ncx_copy_list (const ncx_list_t *list1, ncx_list_t *list2) |
| Copy the contents of list1 to list2 Supports base type NCX_BT_SLIST. More... | |
| void | ncx_merge_list (ncx_list_t *src, ncx_list_t *dest, ncx_merge_t mergetyp, boolean allow_dups) |
| The merge function is handled specially for lists. More... | |
| status_t | ncx_replace_list (const ncx_list_t *src, ncx_list_t *dest) |
| The replace function is handled specially for lists. More... | |
| status_t | ncx_set_strlist (const xmlChar *liststr, ncx_list_t *list) |
| Consume a generic string list with no type checking. More... | |
| status_t | ncx_set_list (ncx_btype_t btyp, const xmlChar *strval, ncx_list_t *list) |
| consume a generic string list with base type checking Parse the XML input as an NCX_BT_SLIST More... | |
| status_t | ncx_finish_list (typ_def_t *typdef, ncx_list_t *list) |
| 2nd pass of parsing a ncx_list_t Finish converting the list members to the proper format More... | |
| ncx_lmem_t * | ncx_new_lmem (void) |
| Malloc and fill in a new ncx_lmem_t struct. More... | |
| void | ncx_clean_lmem (ncx_lmem_t *lmem, ncx_btype_t btyp) |
| Scrub the memory of a ncx_lmem_t but do not delete it. More... | |
| void | ncx_free_lmem (ncx_lmem_t *lmem, ncx_btype_t btyp) |
| Free all the memory in a ncx_lmem_t struct. More... | |
| ncx_lmem_t * | ncx_find_lmem (ncx_list_t *list, const ncx_lmem_t *memval) |
| Find a the first matching list member with the specified value. More... | |
| uint32 | ncx_lmem_count (ncx_list_t *list) |
| Return the number of list members. More... | |
| ncx_lmem_t * | ncx_first_lmem (ncx_list_t *list) |
| Return the first list member. More... | |
| ncx_lmem_t * | ncx_next_lmem (ncx_lmem_t *cur) |
| Return the next list member. More... | |
| const xmlChar * | ncx_get_lmem_strval (const ncx_lmem_t *lmem) |
| Get the string value from an lmem must be type NCX_BT_STRING. More... | |
| xmlChar * | ncx_list_to_string (const ncx_list_t *list) |
| Convert a list into a string with spaces between the entries. More... | |
| status_t | ncx_add_bit_to_list (ncx_list_t *list, uint32 bitpos, const xmlChar *bitname) |
| Add a lmem struct for a bits list. More... | |
NCX Lists are simple string based lists.
Originally used to support xsd:list data types. Now YANG bits data type uses the ncx_list_t structure.
| status_t ncx_add_bit_to_list | ( | ncx_list_t * | list, |
| uint32 | bitpos, | ||
| const xmlChar * | bitname | ||
| ) |
Add a lmem struct for a bits list.
Make a finished lmem struct for a bit and add to end MUST INSERT BITS IN ORDER FOR INTERNAL PROCESSING TO WORK Does not check for duplicates!
| list | list struct to add new ncx_lmem_t struct |
| bitpos | bit position to add |
| bitname | bit name to add |

| void ncx_clean_lmem | ( | ncx_lmem_t * | lmem, |
| ncx_btype_t | btyp | ||
| ) |
Scrub the memory of a ncx_lmem_t but do not delete it.
| lmem | ncx_lmem_t struct to clean |
| btyp | base type of list member (lmem) |


| int32 ncx_compare_lists | ( | const ncx_list_t * | list1, |
| const ncx_list_t * | list2 | ||
| ) |
Compare 2 ncx_list_t struct contents.
Expected data type (NCX_BT_SLIST)
| list1 | first list to compare |
| list2 | second list to compare |
-1 if list1 is < list2
0 if list1 == list2 (also for error, after SET_ERROR called)
1 if list1 is > list2


| status_t ncx_copy_list | ( | const ncx_list_t * | list1, |
| ncx_list_t * | list2 | ||
| ) |
Copy the contents of list1 to list2 Supports base type NCX_BT_SLIST.
A partial copy may occur, and list2 should be properly cleaned and freed, even if an error is returned
| list1 | copy from list |
| list2 | copy to list |


| ncx_lmem_t * ncx_find_lmem | ( | ncx_list_t * | list, |
| const ncx_lmem_t * | memval | ||
| ) |
Find a the first matching list member with the specified value.
| list | list to check |
| memval | value to find, based on list->btyp |


| status_t ncx_finish_list | ( | typ_def_t * | typdef, |
| ncx_list_t * | list | ||
| ) |
2nd pass of parsing a ncx_list_t Finish converting the list members to the proper format
Used by YANG compiler only
| typdef | typ_def_t for the designated list member type | |
| [in,out] | list | == list struct with ncx_lmem_t structs to check
|
* If return other than NO_ERR: * each list->lmem.flags field may contain bits set * for errors: * NCX_FL_RANGE_ERR: size out of range * NCX_FL_VALUE_ERR value not permitted by value set, * or pattern


| ncx_lmem_t * ncx_first_lmem | ( | ncx_list_t * | list | ) |
Return the first list member.
| list | list to check |

| void ncx_free_list | ( | ncx_list_t * | list | ) |
Clean and free an allocated ncx_list_t.
| list | pointer to ncx_list_t memory |

| void ncx_free_lmem | ( | ncx_lmem_t * | lmem, |
| ncx_btype_t | btyp | ||
| ) |
Free all the memory in a ncx_lmem_t struct.
| lmem | struct to clean and free |
| btyp | base type of the list member |


| const xmlChar * ncx_get_lmem_strval | ( | const ncx_lmem_t * | lmem | ) |
Get the string value from an lmem must be type NCX_BT_STRING.
| lmem | list member to check |
| uint32 ncx_list_cnt | ( | const ncx_list_t * | list | ) |
Get the number of entries in the list.
| list | pointer to ncx_list_t memory |

| uint32 ncx_list_linelen | ( | const ncx_list_t * | list | ) |
Get the length of the string if the list was printed in 1 line with spaces between the entries.
| list | pointer to ncx_list_t memory to check |


| xmlChar * ncx_list_to_string | ( | const ncx_list_t * | list | ) |
Convert a list into a string with spaces between the entries.
| list | pointer to ncx_list_t memory to convert |


| uint32 ncx_lmem_count | ( | ncx_list_t * | list | ) |
Return the number of list members.
| list | list to check |

| void ncx_merge_list | ( | ncx_list_t * | src, |
| ncx_list_t * | dest, | ||
| ncx_merge_t | mergetyp, | ||
| boolean | allow_dups | ||
| ) |
The merge function is handled specially for lists.
The contents are not completely replaced like a string. Instead, only new entries from src are added to the dest list.
NCX merge algorithm for lists:
If list types not the same, then error exit;
If allow_dups == FALSE: check if entry exists; if so, exit; Merge src list member into dest, based on mergetyp enum
| src | ncx_list_t struct to merge from | |
| [in,out] | dest | ncx_list_t struct to merge into
|
| mergetyp | type of merge used for this list | |
| allow_dups | TRUE if this list allows duplicate values |


| ncx_list_t * ncx_new_list | ( | ncx_btype_t | btyp | ) |
Malloc Initialize an allocated ncx_list_t.
| btyp | base type of each list member desired |

| ncx_lmem_t * ncx_new_lmem | ( | void | ) |
Malloc and fill in a new ncx_lmem_t struct.
This is a list member used within an ncx_list_t

| ncx_lmem_t * ncx_next_lmem | ( | ncx_lmem_t * | cur | ) |
Return the next list member.
| cur | current lmem to check |

| status_t ncx_replace_list | ( | const ncx_list_t * | src, |
| ncx_list_t * | dest | ||
| ) |
The replace function is handled specially for lists.
The destination list is cleaned and then the src list is copied into the dest list. Only the dest list is altered.
| src | ncx_list_t struct to replace from | |
| [in,out] | dest | ncx_list_t struct to replace into
|


| status_t ncx_set_list | ( | ncx_btype_t | btyp, |
| const xmlChar * | strval, | ||
| ncx_list_t * | list | ||
| ) |
consume a generic string list with base type checking Parse the XML input as an NCX_BT_SLIST
Do not check the individual strings against any restrictions Just check that the strings parse as the expected type. Mark list members with errors as needed
Must call ncx_init_list first!!!
| btyp | expected basetype for the list member type | |
| strval | cleaned XML string to parse into ncx_str_t or ncx_num_t values | |
| [in,out] | list | ncx_list_t in progress that will get the ncx_lmem_t structs added to it, as they are parsed
|


| status_t ncx_set_strlist | ( | const xmlChar * | liststr, |
| ncx_list_t * | list | ||
| ) |
Consume a generic string list with no type checking.
Convert a text line into an ncx_list_t using NCX_BT_STRING as the list type.
| liststr | list value in string form | |
| [out] | list | ncx_list_t that should be initialized and filled with the values from the string
|

