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

Reply via email to