![]() |
yumapro
25.10-1
YumaPro SDK
|
NCX configuration database manager. More...
#include <xmlstring.h>#include "dlq.h"#include "ncx.h"#include "ncxconst.h"#include "plock.h"#include "ses.h"#include "status.h"#include "val.h"#include "val_util.h"#include "thd.h"

Go to the source code of this file.
Data Structures | |
| struct | cfg_template_t |
| struct representing 1 configuration database More... | |
Typedefs | |
| typedef void(* | cfg_reload_candidate_cb_t) (void) |
| support for server callback anytime the candidate config is reloaded from the running config <discard-changes> | |
Enumerations | |
| enum | cfg_state_t { CFG_ST_NONE , CFG_ST_INIT , CFG_ST_READY , CFG_ST_PLOCK , CFG_ST_FLOCK , CFG_ST_CLEANUP } |
| current configuration state More... | |
| enum | cfg_source_t |
| classify the config source | |
| enum | cfg_location_t |
| classify the config location | |
Functions | |
| void | cfg_ypinit (void) |
| Initialize the config manager. More... | |
| void | cfg_clean_roots (void) |
| Cleanup the cfg->root nodes before all the objects are freed. More... | |
| void | cfg_cleanup (void) |
| Cleanup the config manager. More... | |
| status_t | cfg_rwlock_rdlock (thd_tcb_t *tcb, cfg_template_t *cfg) |
| Take out the read lock associated with a cfg (datastore) RWLOCK structure May be called recursively. More... | |
| status_t | cfg_rwlock_wrlock (thd_tcb_t *tcb, cfg_template_t *cfg) |
| Take out a write lock associated with a cfg (datastore) RWLOCK structure. More... | |
| status_t | cfg_rwlock_unlock (thd_tcb_t *tcb, cfg_template_t *cfg) |
| Release a lock associated with a cfg (datastore) RWLOCK structure. More... | |
| status_t | cfg_rwlock_init_req_locks (thd_tcb_t *tcb) |
| Initialize TCB multiple lock structure. More... | |
| status_t | cfg_rwlock_release_all_locks (thd_tcb_t *tcb) |
| Release all RWLOCKs recorded in TCB lock state structure. More... | |
| status_t | cfg_rwlock_acquire_locks (thd_tcb_t *tcb) |
| Acquire multiple locks in order to help prevent deadlock. More... | |
| status_t | cfg_rwlock_acquire_lock_pair (thd_tcb_t *tcb, cfg_template_t *cfg1, boolean wrlock1, cfg_template_t *cfg2, boolean wrlock2) |
| Acquire multiple (2) locks in predetermined, repeatable in order to help prevent deadlock. More... | |
| status_t | cfg_rwlock_acquire_single_lock (thd_tcb_t *tcb, cfg_template_t *cfg, boolean wrlock) |
| Acquire a single RWLOCK. More... | |
| status_t | cfg_rwlock_acquire_single_rdlock (thd_tcb_t *tcb, cfg_template_t *cfg) |
| Acquire a single RWLOCK for read access. More... | |
| status_t | cfg_rwlock_acquire_single_wrlock (thd_tcb_t *tcb, cfg_template_t *cfg) |
| Acquire a single RWLOCK for write access. More... | |
| status_t | cfg_init_static_db (ncx_cfg_t cfg_id) |
| Initialize the specified static configuration slot. More... | |
| cfg_template_t * | cfg_new_template (const xmlChar *name, ncx_cfg_t cfg_id) |
| Malloc and initialize a cfg_template_t struct. More... | |
| void | cfg_free_template (cfg_template_t *cfg) |
| Clean and free the cfg_template_t struct. More... | |
| void | cfg_set_state (ncx_cfg_t cfg_id, cfg_state_t new_state) |
| Change the state of the specified static config. More... | |
| cfg_state_t | cfg_get_state (ncx_cfg_t cfg_id) |
| Get the state of the specified static config. More... | |
| cfg_template_t * | cfg_get_config (const xmlChar *cfgname) |
| Get the config struct from its name. More... | |
| const xmlChar * | cfg_get_config_name (ncx_cfg_t cfgid) |
| Get the config name from its ID. More... | |
| cfg_template_t * | cfg_get_config_id (ncx_cfg_t cfgid) |
| Get the config struct from its ID. More... | |
| void | cfg_set_target (ncx_cfg_t cfg_id) |
| Set the CFG_FL_TARGET flag in the specified config. More... | |
| status_t | cfg_fill_candidate_from_running (ses_id_t sesid) |
| Fill the <candidate> config with the config contents of the <running> config. More... | |
| status_t | cfg_fill_candidate_from_startup (ses_id_t sesid) |
| Fill the <candidate> config with the config contents of the <startup> config. More... | |
| status_t | cfg_fill_candidate_from_inline (ses_id_t sesid, val_value_t *newroot) |
| Fill the <candidate> config with the config contents of the <config> inline XML node. More... | |
| status_t | cfg_fill_operational_from_running (ses_id_t sesid) |
| Fill the <operational> config with the config contents of the <running> config. More... | |
| void | cfg_set_dirty_flag (cfg_template_t *cfg) |
| Mark the config as 'changed'. More... | |
| void | cfg_clear_dirty_flag (cfg_template_t *cfg) |
| Clear the cfg dirty flag upon request. More... | |
| void | cfg_clear_running_dirty_flag (void) |
| Clear the running dirty flag when it is saved to NV-storage or loaded into running from startup. More... | |
| void | cfg_clear_candidate_dirty_flag (void) |
| Clear the candidate dirty flag when it is saved to NV-storage or loaded into running from startup. More... | |
| boolean | cfg_get_dirty_flag (const cfg_template_t *cfg) |
| Get the config dirty flag value. More... | |
| status_t | cfg_ok_to_lock (const cfg_template_t *cfg) |
| Check if the specified config can be locked right now for global lock only. More... | |
| status_t | cfg_ok_to_unlock (const cfg_template_t *cfg, ses_id_t sesid) |
| Check if the specified config can be unlocked right now by the specified session ID; for global lock only. More... | |
| status_t | cfg_ok_to_unlock2 (const cfg_template_t *cfg, ses_id_t sesid, boolean lockall) |
| Check if the specified config can be unlocked right now by the specified session ID; for global lock only. More... | |
| status_t | cfg_ok_to_read (const cfg_template_t *cfg) |
| Check if the specified config can be read right now. More... | |
| status_t | cfg_ok_to_write (const cfg_template_t *cfg, ses_id_t sesid) |
| Check if the specified config can be written right now by the specified session ID. More... | |
| boolean | cfg_is_global_locked (const cfg_template_t *cfg) |
| Check if the specified config has ab active global lock. More... | |
| boolean | cfg_is_partial_locked (const cfg_template_t *cfg) |
| Check if the specified config has any active partial locks. More... | |
| status_t | cfg_get_global_lock_info (const cfg_template_t *cfg, ses_id_t *sesid, const xmlChar **locktime) |
| Get the current global lock info. More... | |
| status_t | cfg_lock (cfg_template_t *cfg, ses_id_t locked_by, cfg_source_t lock_src) |
| Lock the specified config. More... | |
| status_t | cfg_lock2 (cfg_template_t *cfg, ses_id_t locked_by, cfg_source_t lock_src, boolean lockall) |
| Lock the specified config (with lockall) More... | |
| status_t | cfg_unlock (cfg_template_t *cfg, ses_id_t locked_by) |
| Unlock the specified config. More... | |
| status_t | cfg_unlock2 (cfg_template_t *cfg, ses_id_t locked_by, boolean lockall) |
| Unlock the specified config (2nd rev) More... | |
| status_t | cfg_unlock_ex (cfg_template_t *cfg, ses_id_t locked_by, boolean skip_reload) |
| Unlock the specified config. More... | |
| void | cfg_release_locks (ses_id_t sesid) |
| Release any configuration locks held by the specified session. More... | |
| void | cfg_release_partial_locks (ses_id_t sesid) |
| Release any configuration locks held by the specified session. More... | |
| void | cfg_get_lock_list (ses_id_t sesid, val_value_t *retval) |
| Get a list of all the locks held by a session. More... | |
| void | cfg_apply_load_root (cfg_template_t *cfg, val_value_t *newroot) |
| Apply the AGT_CB_APPLY function for the OP_EDITOP_LOAD operation. More... | |
| void | cfg_update_last_ch_time (cfg_template_t *cfg, time_t *timestamp) |
| Update the last-modified timestamp. More... | |
| void | cfg_update_last_txid (cfg_template_t *cfg, ncx_transaction_id_t txid) |
| Update the last good transaction ID. More... | |
| void | cfg_update_stamps (cfg_template_t *source, cfg_template_t *dest) |
| Update the last-modified and last-txid stamps. More... | |
| const xmlChar * | cfg_get_last_ch_time (cfg_template_t *cfg) |
| Get the last-modified timestamp. More... | |
| ncx_transaction_id_t | cfg_get_last_txid (cfg_template_t *cfg) |
| Get the last good transaction ID. More... | |
| status_t | cfg_sprintf_etag (cfg_template_t *cfg, xmlChar *buff, int32 buffsize) |
| Write the Entity Tag for the datastore to the specified buffer. More... | |
| status_t | cfg_sprintf_etag_id (ncx_transaction_id_t id, xmlChar *buff, int32 buffsize) |
| Write the Entity Tag for the datastore to the specified buffer Use the last_id instead of the cfg template. More... | |
| status_t | cfg_add_partial_lock (cfg_template_t *cfg, plock_cb_t *plcb) |
| Add a partial lock the specified config. More... | |
| plock_cb_t * | cfg_find_partial_lock (cfg_template_t *cfg, plock_id_t lockid) |
| Find a partial lock in the specified config. More... | |
| plock_cb_t * | cfg_first_partial_lock (cfg_template_t *cfg) |
| Get the first partial lock in the specified config. More... | |
| plock_cb_t * | cfg_next_partial_lock (plock_cb_t *curplockcb) |
| Get the next partial lock in the specified config. More... | |
| void | cfg_delete_partial_lock (cfg_template_t *cfg, plock_id_t lockid) |
| Remove a partial lock from the specified config. More... | |
| status_t | cfg_ok_to_partial_lock (const cfg_template_t *cfg) |
| Check if the specified config can be locked right now for partial lock only. More... | |
| val_value_t * | cfg_get_root (ncx_cfg_t cfgid) |
| Get the config root for the specified config. More... | |
| status_t | cfg_setup_datastore_root (ncx_cfg_t cfgid) |
| Setup the running config root if load_running_config did not add anything. More... | |
| void | cfg_register_reload_candidate_cb (cfg_reload_candidate_cb_t cbfn) |
| Register a callback function to be called anytime the. More... | |
| const xmlChar * | cfg_get_startup_filespec (void) |
| Get the filespec string for the XML file to save the running database. More... | |
| boolean | cfg_running_is_wrlocked (void) |
| Check if the running datastore is currently pthreads write-locked. More... | |
| boolean | cfg_candidate_is_wrlocked (void) |
| Check if the candidate datastore is currently pthreads write-locked. More... | |
| boolean | cfg_operational_is_wrlocked (void) |
| Check if the operational datastore is currently pthreads write-locked. More... | |
| cfg_template_t * | cfg_new_fake_candidate (const xmlChar *name, ncx_cfg_t cfg_id) |
| Malloc and initialize a new fake Candidate cfg_template_t struct. More... | |
| void | cfg_set_defer_load (boolean val) |
| Set the config defer load flag to the config. More... | |
| time_t | cfg_get_lock_itime (ncx_cfg_t cfg_id) |
| Get the lock_itime field. More... | |
| status_t | cfg_lock_hold_timeout (ncx_cfg_t cfg_id, ses_id_t locked_by, boolean skip_reload) |
| Force a cfg lock to be undone due to max-lock-hold-time. More... | |
NCX configuration database manager.