osaf/services/saf/amf/amfd/include/si.h | 4 +-- osaf/services/saf/amf/amfd/si.cc | 1 - osaf/services/saf/amf/amfd/svctypecstypes.cc | 40 +++++++-------------------- 3 files changed, 12 insertions(+), 33 deletions(-)
diff --git a/osaf/services/saf/amf/amfd/include/si.h b/osaf/services/saf/amf/amfd/include/si.h --- a/osaf/services/saf/amf/amfd/include/si.h +++ b/osaf/services/saf/amf/amfd/include/si.h @@ -69,7 +69,6 @@ typedef struct avd_sirankedsu { */ typedef struct avd_si_tag { - NCS_PATRICIA_NODE tree_node; /* key will be the SI name */ SaNameT name; /******************** B.04 model *************************************************/ @@ -121,7 +120,6 @@ typedef struct avd_amf_svc_type_tag { } AVD_SVC_TYPE; typedef struct { - NCS_PATRICIA_NODE tree_node; /* key is name */ SaNameT name; SaUint32T saAmfSvctMaxNumCSIs; @@ -133,6 +131,7 @@ typedef struct { } AVD_SVC_TYPE_CS_TYPE; extern AmfDb<AVD_SI> *si_db; +extern AmfDb<AVD_SVC_TYPE_CS_TYPE> *svctypecstypes_db; #define AVD_SI_NULL ((AVD_SI *)0) #define m_AVD_SI_ACTV_MAX_SU(l_si) (l_si)->saAmfSIPrefActiveAssignments #define m_AVD_SI_ACTV_CURR_SU(l_si) (l_si)->saAmfSINumCurrActiveAssignments @@ -161,7 +160,6 @@ extern void avd_svctype_remove_si(AVD_SI extern void avd_svctype_constructor(void); extern SaAisErrorT avd_svctypecstypes_config_get(SaNameT *svctype_name); -extern AVD_SVC_TYPE_CS_TYPE *avd_svctypecstypes_get(const SaNameT *svctypecstypes_name); extern void avd_svctypecstypes_constructor(void); extern void avd_si_inc_curr_act_ass(AVD_SI *si); extern void avd_si_dec_curr_act_ass(AVD_SI *si); diff --git a/osaf/services/saf/amf/amfd/si.cc b/osaf/services/saf/amf/amfd/si.cc --- a/osaf/services/saf/amf/amfd/si.cc +++ b/osaf/services/saf/amf/amfd/si.cc @@ -331,7 +331,6 @@ AVD_SI *avd_si_new(const SaNameT *dn) memcpy(si->name.value, dn->value, dn->length); si->name.length = dn->length; - si->tree_node.key_info = (uint8_t *)&si->name; si->si_switch = AVSV_SI_TOGGLE_STABLE; si->saAmfSIAdminState = SA_AMF_ADMIN_UNLOCKED; si->si_dep_state = AVD_SI_NO_DEPENDENCY; diff --git a/osaf/services/saf/amf/amfd/svctypecstypes.cc b/osaf/services/saf/amf/amfd/svctypecstypes.cc --- a/osaf/services/saf/amf/amfd/svctypecstypes.cc +++ b/osaf/services/saf/amf/amfd/svctypecstypes.cc @@ -20,11 +20,11 @@ #include <si.h> #include <imm.h> -static NCS_PATRICIA_TREE svctypecstypes_db; +AmfDb<AVD_SVC_TYPE_CS_TYPE> *svctypecstypes_db = NULL; static void svctypecstype_db_add(AVD_SVC_TYPE_CS_TYPE *svctypecstype) { - unsigned int rc = ncs_patricia_tree_add(&svctypecstypes_db, &svctypecstype->tree_node); + uint32_t rc = svctypecstypes_db->insert(svctypecstype); osafassert(rc == NCSCC_RC_SUCCESS); } @@ -39,7 +39,6 @@ static AVD_SVC_TYPE_CS_TYPE *svctypecsty memcpy(svctypecstype->name.value, dn->value, dn->length); svctypecstype->name.length = dn->length; - svctypecstype->tree_node.key_info = (uint8_t *)&(svctypecstype->name); if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfSvctMaxNumCSIs"), attributes, 0, &svctypecstype->saAmfSvctMaxNumCSIs) != SA_AIS_OK) svctypecstype->saAmfSvctMaxNumCSIs = -1; /* no limit */ @@ -47,25 +46,6 @@ static AVD_SVC_TYPE_CS_TYPE *svctypecsty return svctypecstype; } -static void svctypecstypes_delete(AVD_SVC_TYPE_CS_TYPE *svctypecstype) -{ - uint32_t rc; - - rc = ncs_patricia_tree_del(&svctypecstypes_db, &svctypecstype->tree_node); - osafassert(rc == NCSCC_RC_SUCCESS); - delete svctypecstype; -} - -AVD_SVC_TYPE_CS_TYPE *avd_svctypecstypes_get(const SaNameT *dn) -{ - SaNameT tmp = {0}; - - tmp.length = dn->length; - memcpy(tmp.value, dn->value, tmp.length); - - return (AVD_SVC_TYPE_CS_TYPE*)ncs_patricia_tree_get(&svctypecstypes_db, (uint8_t *)&tmp); -} - /** * Get configuration for all SaAmfSvcTypeCSTypes objects from * IMM and create AVD internal objects. @@ -100,7 +80,7 @@ SaAisErrorT avd_svctypecstypes_config_ge while (immutil_saImmOmSearchNext_2(searchHandle, &dn, (SaImmAttrValuesT_2 ***)&attributes) == SA_AIS_OK) { - if ((svctypecstype = avd_svctypecstypes_get(&dn))== NULL) { + if ((svctypecstype = svctypecstypes_db->find(&dn))== NULL) { if ((svctypecstype = svctypecstypes_create(&dn, attributes)) == NULL) { error = SA_AIS_ERR_FAILED_OPERATION; goto done2; @@ -138,7 +118,7 @@ static SaAisErrorT svctypecstypes_ccb_co report_ccb_validation_error(opdata, "Modification of SaAmfSvcTypeCSTypes not supported"); break; case CCBUTIL_DELETE: - svctypecstype = avd_svctypecstypes_get(&opdata->objectName); + svctypecstype = svctypecstypes_db->find(&opdata->objectName); if (svctypecstype->curr_num_csis == 0) { rc = SA_AIS_OK; opdata->userData = svctypecstype; @@ -171,7 +151,12 @@ static void svctypecstypes_ccb_apply_cb( svctypecstype_db_add(svctypecstype); break; case CCBUTIL_DELETE: - svctypecstypes_delete(static_cast<AVD_SVC_TYPE_CS_TYPE*>(opdata->userData)); + svctypecstype = svctypecstypes_db->find(&opdata->objectName); + if (svctypecstype != NULL) { + svctypecstypes_db->erase(static_cast<AVD_SVC_TYPE_CS_TYPE*>(opdata->userData)); + delete svctypecstype; + } + break; default: osafassert(0); @@ -181,10 +166,7 @@ static void svctypecstypes_ccb_apply_cb( void avd_svctypecstypes_constructor(void) { - NCS_PATRICIA_PARAMS patricia_params; - - patricia_params.key_size = sizeof(SaNameT); - osafassert(ncs_patricia_tree_init(&svctypecstypes_db, &patricia_params) == NCSCC_RC_SUCCESS); + svctypecstypes_db = new AmfDb<AVD_SVC_TYPE_CS_TYPE>; avd_class_impl_set("SaAmfSvcTypeCSTypes", NULL, NULL, svctypecstypes_ccb_completed_cb, svctypecstypes_ccb_apply_cb); } ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel