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 | 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