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

Reply via email to