ack, code review only/Regards HansN
On 06/04/14 12:19, 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<std::string, AVD_SI> *si_db;
>   extern AmfDb<std::string, AVD_SVC_TYPE_CS_TYPE> *svctypecstypes_db;
> +extern AmfDb<std::string, 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
> @@ -467,7 +467,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(Amf::to_string(&si->saAmfSvcType));
>   
>       if (si->saAmfSIProtectedbySG.length > 0)
>               si->sg_of_si = avd_sg_get(&si->saAmfSIProtectedbySG);
> @@ -509,7 +509,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(Amf::to_string(&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<std::string, 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(Amf::to_string(&svct->name),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(Amf::to_string(&svc_type->name));
>   
>       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(Amf::to_string(&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(Amf::to_string(&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<std::string, AVD_SVC_TYPE>;
>   
>       avd_class_impl_set("SaAmfSvcType", NULL, NULL, svctype_ccb_completed_cb,
>                       svctype_ccb_apply_cb);


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their 
applications. Written by three acclaimed leaders in the field, 
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to