Ack, code review only./Regards HansN On 05/23/14 11:15, praveen.malv...@oracle.com wrote: > 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