Package: registry.file.list

Description

Private package for list processing.

Header

package registry.file.list is
 

Type Summary

key_list_ptr
section_list_ptr

Other Items:

type section_list_ptr is access section_list;

type key_list_ptr is access key_list;

function Find_Section(reg : in file_registry; section : r_section) 
return section_list_access;
Find a section within the section list of the file registry.
reg : file_registry The registry structure.
section : r_section The section name to search.
Returns : section_list_access A Pointer to the object in the list, or null if no section is found.

procedure Add_Section(reg : in out file_registry; 
                      section : in r_section; 
                      current_section : in out section_list_access);
Add a section to the section list of the file registry if the section does not exist.
reg : file_registry The registry structure.
section : r_section The section name to add.
current_section : section_list_access A Pointer to the new created object in the list, or if the section already exists, to the existing object.

procedure Add_Key(sec : in out section_list_access;
                  key : in r_key;
                  value : in Unbounded_String);
Add a key to the key list of a section list object.
sec : section_list_access The section list object to add the key.
key : r_key The key to add.
current_section : section_list_access A Pointer to the new created object in the list;

procedure Insert(current : in out element_list_access;
                 prev_element : in out element_list_access;
                 new_element : in out element_list_access);
Insert an element into the list.

procedure Append(last_element :in out element_list_access; 
                 new_element : in element_list_access);
Append an element to the list.

procedure Free_Section(element:  section_list_access);
Free memory of a complete section list including all keys.
element : section_list_access Head element of the list

function Next_Element(s : section_list_access) 
return section_list_access;
Get next element of a section list.
s : section_list_access Current element.
Returns : section_list_access Access to the next element or null if no next element exist.

function Next_Element(k : key_list_access) return key_list_access;
Get next element of a key list.
k : key_list_access Current element.
Returns : key_list_access Access to the next element or null if no next element exist.

function Get_SectionName(s :  section_list_access) return r_section;
Get section name of a section list object.
s : section_list_access The section list object.
Returns : r_section The section name.

function Get_Key_ListHead(s :  section_list_access) return key_list_access;
Get head element of the key list from a section list element
s : section_list_access The section list object.
Returns : key_list_access The head of the key list, or null if no keys exists.

function Get_KeyName(s :  key_list_access) return r_key;
Get key name of a key list object.
k : key_list_access The key list object.
Returns : r_key The key name.

function Get_KeyValue(s :  key_list_access)  return Unbounded_String;
Get the value of a key list object.
k : key_list_access The key list object.
Returns : Unbounded_String The value.

function Find_Key(sec : in section_list; key : r_key) return key_list_access;
Find a key within the key list of a section list object.
sec : section_list The section list object to search the key.
key : r_key The key name to search.
Returns : key_list_access A Pointer to the object in the list, or null if no section is found.

procedure Remove_Key(reg : in out file_registry; key : in out key_list_access);
Remove key a from the current section in the file registry.
reg : file_registry The registry structure.
key : key_list_access The object to remove.

procedure Remove_Section(reg : in out file_registry; 
                         sec : in out section_list_access);
Remove key a from the current section in the file registry.
reg : file_registry The registry structure.
key : key_list_access The object to remove.

function SubSection(reg : file_registry; sec_name : r_section) 
return Boolean;
Check if a subsection for a section exists.
reg : file_registry The registry structure.
sec_name : r_section The section name. A subsection exists if an other section beginning with the section name and an additional section_separator exists.
Returns : Boolean True if a subsection is found.
end registry.file.list;