Ack, code review only./BR HansN On 05/23/14 11:15, praveen.malv...@oracle.com wrote: > osaf/services/saf/amf/amfd/compcstype.cc | 4 +- > osaf/services/saf/amf/amfd/ctcstype.cc | 37 > +++++++----------------------- > osaf/services/saf/amf/amfd/include/comp.h | 5 ++- > osaf/services/saf/amf/amfd/util.cc | 2 +- > 4 files changed, 15 insertions(+), 33 deletions(-) > > > diff --git a/osaf/services/saf/amf/amfd/compcstype.cc > b/osaf/services/saf/amf/amfd/compcstype.cc > --- a/osaf/services/saf/amf/amfd/compcstype.cc > +++ b/osaf/services/saf/amf/amfd/compcstype.cc > @@ -206,7 +206,7 @@ static int is_config_valid(const SaNameT > > ctcstype_name.length = sprintf((char*)ctcstype_name.value, "%s,%s", > cstype_name, comptype_name->value); > > - if (avd_ctcstype_get(&ctcstype_name) == NULL) { > + if (ctcstype_db->find(&ctcstype_name) == NULL) { > if (opdata == NULL) { > report_ccb_validation_error(opdata, "'%s' does not > exist in model", ctcstype_name.value); > goto free_cstype_name; > @@ -258,7 +258,7 @@ static AVD_COMPCS_TYPE *compcstype_creat > ctcstype_name.length = sprintf((char*)ctcstype_name.value, > "%s,%s", cstype_name, comp->comp_type->name.value); > > - ctcstype = avd_ctcstype_get(&ctcstype_name); > + ctcstype = ctcstype_db->find(&ctcstype_name); > > if > (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompNumMaxActiveCSIs"), > attributes, 0, > &num_max_act_csi) != SA_AIS_OK) { > diff --git a/osaf/services/saf/amf/amfd/ctcstype.cc > b/osaf/services/saf/amf/amfd/ctcstype.cc > --- a/osaf/services/saf/amf/amfd/ctcstype.cc > +++ b/osaf/services/saf/amf/amfd/ctcstype.cc > @@ -23,11 +23,11 @@ > #include <comp.h> > #include <imm.h> > > -static NCS_PATRICIA_TREE ctcstype_db; > +AmfDb<AVD_CTCS_TYPE> *ctcstype_db = NULL; > > static void ctcstype_db_add(AVD_CTCS_TYPE *ctcstype) > { > - unsigned int rc = ncs_patricia_tree_add(&ctcstype_db, > &ctcstype->tree_node); > + unsigned int rc = ctcstype_db->insert(ctcstype); > osafassert(rc == NCSCC_RC_SUCCESS); > } > > @@ -74,7 +74,6 @@ static AVD_CTCS_TYPE *ctcstype_create(co > > memcpy(ctcstype->name.value, dn->value, dn->length); > ctcstype->name.length = dn->length; > - ctcstype->tree_node.key_info = (uint8_t *)&(ctcstype->name); > > error = > immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCtCompCapability"), > attributes, 0, &ctcstype->saAmfCtCompCapability); > osafassert(error == SA_AIS_OK); > @@ -96,25 +95,6 @@ static AVD_CTCS_TYPE *ctcstype_create(co > return ctcstype; > } > > -static void ctcstype_delete(AVD_CTCS_TYPE *ctcstype) > -{ > - unsigned int rc; > - > - rc = ncs_patricia_tree_del(&ctcstype_db, &ctcstype->tree_node); > - osafassert(rc == NCSCC_RC_SUCCESS); > - delete ctcstype; > -} > - > -AVD_CTCS_TYPE *avd_ctcstype_get(const SaNameT *dn) > -{ > - SaNameT tmp = {0}; > - > - tmp.length = dn->length; > - memcpy(tmp.value, dn->value, tmp.length); > - > - return (AVD_CTCS_TYPE *)ncs_patricia_tree_get(&ctcstype_db, (uint8_t > *)&tmp); > -} > - > SaAisErrorT avd_ctcstype_config_get(const SaNameT *comp_type_dn, > AVD_COMP_TYPE *comp_type) > { > SaAisErrorT error = SA_AIS_ERR_FAILED_OPERATION; > @@ -143,7 +123,7 @@ SaAisErrorT avd_ctcstype_config_get(cons > if (!is_config_valid(&dn, attributes, NULL)) > goto done2; > > - if ((ctcstype = avd_ctcstype_get(&dn)) == NULL ) { > + if ((ctcstype = ctcstype_db->find(&dn)) == NULL ) { > if ((ctcstype = ctcstype_create(&dn, attributes)) == > NULL) > goto done2; > > @@ -199,8 +179,11 @@ static void ctcstype_ccb_apply_cb(CcbUti > ctcstype_db_add(ctcstype); > break; > case CCBUTIL_DELETE: > - ctcstype = avd_ctcstype_get(&opdata->objectName); > - ctcstype_delete(ctcstype); > + ctcstype = ctcstype_db->find(&opdata->objectName); > + if (ctcstype != NULL) { > + ctcstype_db->erase(ctcstype); > + delete ctcstype; > + } > break; > default: > osafassert(0); > @@ -212,10 +195,8 @@ static void ctcstype_ccb_apply_cb(CcbUti > > void avd_ctcstype_constructor(void) > { > - NCS_PATRICIA_PARAMS patricia_params; > + ctcstype_db = new AmfDb<AVD_CTCS_TYPE>; > > - patricia_params.key_size = sizeof(SaNameT); > - osafassert(ncs_patricia_tree_init(&ctcstype_db, &patricia_params) == > NCSCC_RC_SUCCESS); > avd_class_impl_set("SaAmfCtCsType", NULL, NULL, > ctcstype_ccb_completed_cb, ctcstype_ccb_apply_cb); > } > diff --git a/osaf/services/saf/amf/amfd/include/comp.h > b/osaf/services/saf/amf/amfd/include/comp.h > --- a/osaf/services/saf/amf/amfd/include/comp.h > +++ b/osaf/services/saf/amf/amfd/include/comp.h > @@ -39,6 +39,7 @@ > #include <ncspatricia.h> > #include <amf_d2nmsg.h> > #include <cb.h> > +#include "db_template.h" > > class AVD_SU; > > @@ -165,7 +166,6 @@ typedef struct avd_comp_cs_type_tag { > > /* AMF Class SaAmfCtCsType */ > typedef struct { > - NCS_PATRICIA_NODE tree_node; /* name is key */ > SaNameT name; > SaAmfCompCapabilityModelT saAmfCtCompCapability; > SaUint32T saAmfCtDefNumMaxActiveCSIs; > @@ -173,6 +173,8 @@ typedef struct { > AVD_COMP_TYPE *comptype; > } AVD_CTCS_TYPE; > > +extern AmfDb<AVD_CTCS_TYPE> *ctcstype_db; > + > extern AVD_COMP_GLOBALATTR avd_comp_global_attrs; > > /** > @@ -224,7 +226,6 @@ extern SaAisErrorT avd_compglobalattrs_c > extern void avd_compglobalattrs_constructor(void); > > extern SaAisErrorT avd_ctcstype_config_get(const SaNameT *comp_type_dn, > AVD_COMP_TYPE *comp_type); > -extern AVD_CTCS_TYPE *avd_ctcstype_get(const SaNameT *dn); > extern void avd_ctcstype_constructor(void); > > extern AVD_COMPCS_TYPE *avd_compcstype_new(const SaNameT *dn); > diff --git a/osaf/services/saf/amf/amfd/util.cc > b/osaf/services/saf/amf/amfd/util.cc > --- a/osaf/services/saf/amf/amfd/util.cc > +++ b/osaf/services/saf/amf/amfd/util.cc > @@ -661,7 +661,7 @@ static SaAmfCompCapabilityModelT get_com > SaNameT dn; > avsv_create_association_class_dn(&csi->cstype->name, > &comp->comp_type->name, "safSupportedCsType", &dn); > - AVD_CTCS_TYPE *ctcs_type = avd_ctcstype_get(&dn); > + AVD_CTCS_TYPE *ctcs_type = ctcstype_db->find(&dn); > osafassert(ctcs_type); > return ctcs_type->saAmfCtCompCapability; > }
------------------------------------------------------------------------------ "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