osaf/services/saf/amf/amfd/include/si.h | 2 +- osaf/services/saf/amf/amfd/si.cc | 4 ++-- osaf/services/saf/amf/amfd/svctype.cc | 27 ++++++--------------------- 3 files changed, 9 insertions(+), 24 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 @@ -132,6 +132,7 @@ typedef struct { extern AmfDb<AVD_SI> *si_db; extern AmfDb<AVD_SVC_TYPE_CS_TYPE> *svctypecstypes_db; +extern AmfDb<AVD_SVC_TYPE> *svctype_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 @@ -153,7 +154,6 @@ extern AVD_SI *avd_si_get(const SaNameT extern SaAisErrorT avd_si_config_get(struct avd_app_tag *app); extern void avd_si_constructor(void); -extern AVD_SVC_TYPE *avd_svctype_get(const SaNameT *dn); extern SaAisErrorT avd_svctype_config_get(void); extern void avd_svctype_add_si(AVD_SI *si); extern void avd_svctype_remove_si(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 @@ -469,7 +469,7 @@ static void si_add_to_model(AVD_SI *si) avd_si_db_add(si); - si->svc_type = avd_svctype_get(&si->saAmfSvcType); + si->svc_type = svctype_db->find(&si->saAmfSvcType); if (si->saAmfSIProtectedbySG.length > 0) si->sg_of_si = avd_sg_get(&si->saAmfSIProtectedbySG); @@ -511,7 +511,7 @@ static int is_config_valid(const SaNameT rc = immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfSvcType"), attributes, 0, &aname); osafassert(rc == SA_AIS_OK); - if (avd_svctype_get(&aname) == NULL) { + if (svctype_db->find(&aname) == NULL) { /* SVC type does not exist in current model, check CCB if passed as param */ if (opdata == NULL) { report_ccb_validation_error(opdata, "'%s' does not exist in model", aname.value); diff --git a/osaf/services/saf/amf/amfd/svctype.cc b/osaf/services/saf/amf/amfd/svctype.cc --- a/osaf/services/saf/amf/amfd/svctype.cc +++ b/osaf/services/saf/amf/amfd/svctype.cc @@ -28,7 +28,7 @@ #include <csi.h> #include <proc.h> -static NCS_PATRICIA_TREE svctype_db; +AmfDb<AVD_SVC_TYPE> *svctype_db = NULL; // // TODO(HANO) Temporary use this function instead of strdup which uses malloc. @@ -43,24 +43,14 @@ static char *StrDup(const char *s) static void svctype_db_add(AVD_SVC_TYPE *svct) { - unsigned int rc = ncs_patricia_tree_add(&svctype_db, &svct->tree_node); + unsigned int rc = svctype_db->insert(svct); osafassert (rc == NCSCC_RC_SUCCESS); } -AVD_SVC_TYPE *avd_svctype_get(const SaNameT *dn) -{ - SaNameT tmp = {0}; - - tmp.length = dn->length; - memcpy(tmp.value, dn->value, tmp.length); - - return (AVD_SVC_TYPE *)ncs_patricia_tree_get(&svctype_db, (uint8_t *)&tmp); -} static void svctype_delete(AVD_SVC_TYPE *svc_type) { - unsigned int rc = ncs_patricia_tree_del(&svctype_db, &svc_type->tree_node); - osafassert(rc == NCSCC_RC_SUCCESS); + svctype_db->erase(svc_type); if (svc_type->saAmfSvcDefActiveWeight != NULL) { unsigned int i = 0; @@ -94,7 +84,6 @@ static AVD_SVC_TYPE *svctype_create(cons memcpy(svct->name.value, dn->value, dn->length); svct->name.length = dn->length; - svct->tree_node.key_info = (uint8_t *)&svct->name; svct->saAmfSvcDefActiveWeight = NULL; svct->saAmfSvcDefStandbyWeight = NULL; @@ -159,7 +148,7 @@ static SaAisErrorT svctype_ccb_completed report_ccb_validation_error(opdata, "Modification of SaAmfSvcType not supported"); break; case CCBUTIL_DELETE: - svc_type = avd_svctype_get(&opdata->objectName); + svc_type = svctype_db->find(&opdata->objectName); if (NULL != svc_type->list_of_si) { /* check whether there exists a delete operation for * each of the SI in the svc_type list in the current CCB @@ -250,7 +239,7 @@ SaAisErrorT avd_svctype_config_get(void) if (!is_config_valid(&dn, attributes, NULL)) goto done2; - if ((svc_type = avd_svctype_get(&dn))==NULL) { + if ((svc_type = svctype_db->find(&dn)) == NULL) { if ((svc_type = svctype_create(&dn, attributes)) == NULL) goto done2; @@ -308,11 +297,7 @@ void avd_svctype_remove_si(AVD_SI *si) void avd_svctype_constructor(void) { - NCS_PATRICIA_PARAMS patricia_params; - - patricia_params.key_size = sizeof(SaNameT); - - osafassert(ncs_patricia_tree_init(&svctype_db, &patricia_params) == NCSCC_RC_SUCCESS); + svctype_db = new AmfDb<AVD_SVC_TYPE>; avd_class_impl_set("SaAmfSvcType", NULL, NULL, svctype_ccb_completed_cb, svctype_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