ack, code review only/Regards HansN
On 06/04/14 12:20, praveen.malv...@oracle.com wrote:
>   osaf/services/saf/amf/amfd/include/sutype.h |   9 +------
>   osaf/services/saf/amf/amfd/sgtype.cc        |   2 +-
>   osaf/services/saf/amf/amfd/su.cc            |  10 +++---
>   osaf/services/saf/amf/amfd/sutype.cc        |  38 
> ++++++----------------------
>   4 files changed, 16 insertions(+), 43 deletions(-)
>
>
> diff --git a/osaf/services/saf/amf/amfd/include/sutype.h 
> b/osaf/services/saf/amf/amfd/include/sutype.h
> --- a/osaf/services/saf/amf/amfd/include/sutype.h
> +++ b/osaf/services/saf/amf/amfd/include/sutype.h
> @@ -31,6 +31,7 @@ struct avd_sutype {
>       unsigned int number_svc_types;  /* size of array 
> saAmfSutProvidesSvcTypes */
>       AVD_SU *list_of_su;
>   };
> +extern AmfDb<std::string, avd_sutype> *sutype_db;
>   
>   /**
>    * Get SaAmfSUType from IMM and create internal objects
> @@ -40,14 +41,6 @@ struct avd_sutype {
>   extern SaAisErrorT avd_sutype_config_get(void);
>   
>   /**
> - * Get SaAmfSUType object using given key
> - * @param dn
> - *
> - * @return struct avd_sutype*
> - */
> -extern struct avd_sutype *avd_sutype_get(const SaNameT *dn);
> -
> -/**
>    * Class constructor, must be called before any other function
>    */
>   extern void avd_sutype_constructor(void);
> diff --git a/osaf/services/saf/amf/amfd/sgtype.cc 
> b/osaf/services/saf/amf/amfd/sgtype.cc
> --- a/osaf/services/saf/amf/amfd/sgtype.cc
> +++ b/osaf/services/saf/amf/amfd/sgtype.cc
> @@ -144,7 +144,7 @@ static int is_config_valid(const SaNameT
>   
>       for (j = 0; j < attr->attrValuesNumber; j++) {
>               SaNameT *name = (SaNameT *)attr->attrValues[j];
> -             sut = avd_sutype_get(name);
> +             sut = sutype_db->find(Amf::to_string(name));
>               if (sut == NULL) {
>                       if (opdata == NULL) {
>                               report_ccb_validation_error(opdata, "'%s' does 
> not exist in model", name->value);
> diff --git a/osaf/services/saf/amf/amfd/su.cc 
> b/osaf/services/saf/amf/amfd/su.cc
> --- a/osaf/services/saf/amf/amfd/su.cc
> +++ b/osaf/services/saf/amf/amfd/su.cc
> @@ -254,7 +254,7 @@ static int is_config_valid(const SaNameT
>       rc = immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfSUType"), 
> attributes, 0, &saAmfSUType);
>       osafassert(rc == SA_AIS_OK);
>   
> -     if ((sut = avd_sutype_get(&saAmfSUType)) != NULL) {
> +     if ((sut = sutype_db->find(Amf::to_string(&saAmfSUType))) != NULL) {
>               saAmfSutIsExternal = sut->saAmfSutIsExternal;
>       } else {
>               /* SU type does not exist in current model, check CCB if passed 
> as param */
> @@ -473,7 +473,7 @@ static AVD_SU *su_create(const SaNameT *
>   
>       (void) 
> immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfSUHostNodeOrNodeGroup"), 
> attributes, 0, &su->saAmfSUHostNodeOrNodeGroup);
>   
> -     if ((sut = avd_sutype_get(&su->saAmfSUType)) == NULL) {
> +     if ((sut = sutype_db->find(Amf::to_string(&su->saAmfSUType))) == NULL) {
>               LOG_ER("saAmfSUType '%s' does not exist", 
> su->saAmfSUType.value);
>               goto done;
>       }
> @@ -602,7 +602,7 @@ static void su_add_to_model(AVD_SU *su)
>               rc = su_db->insert(Amf::to_string(&su->name), su);
>               osafassert(rc == NCSCC_RC_SUCCESS);
>       }
> -     su->su_type = avd_sutype_get(&su->saAmfSUType);
> +     su->su_type = sutype_db->find(Amf::to_string(&su->saAmfSUType));
>       osafassert(su->su_type);
>       avd_sutype_add_su(su);
>       avd_sg_add_su(su);
> @@ -1301,7 +1301,7 @@ static SaAisErrorT su_ccb_completed_modi
>                               rc = SA_AIS_ERR_BAD_OPERATION;
>                               goto done;
>                       }
> -                     if (avd_sutype_get(&sutype_name) == NULL) {
> +                     if (sutype_db->find(Amf::to_string(&sutype_name)) == 
> NULL) {
>                               report_ccb_validation_error(opdata, "SU Type 
> not found '%s'", sutype_name.value);
>                               rc = SA_AIS_ERR_BAD_OPERATION;
>                               goto done;
> @@ -1486,7 +1486,7 @@ static void su_ccb_apply_modify_hdlr(str
>                       struct avd_sutype *sut;
>                       SaNameT sutype_name = *(SaNameT*) 
> attr_mod->modAttr.attrValues[0];
>                       TRACE("Modified saAmfSUType from '%s' to '%s'", 
> su->saAmfSUType.value, sutype_name.value);
> -                     sut = avd_sutype_get(&sutype_name);
> +                     sut = sutype_db->find(Amf::to_string(&sutype_name));
>                       avd_sutype_remove_su(su);
>                       su->saAmfSUType = sutype_name;
>                       su->su_type = sut;
> diff --git a/osaf/services/saf/amf/amfd/sutype.cc 
> b/osaf/services/saf/amf/amfd/sutype.cc
> --- a/osaf/services/saf/amf/amfd/sutype.cc
> +++ b/osaf/services/saf/amf/amfd/sutype.cc
> @@ -28,7 +28,7 @@
>   #include <ntf.h>
>   #include <proc.h>
>   
> -static NCS_PATRICIA_TREE sutype_db;
> +AmfDb<std::string, avd_sutype> *sutype_db = NULL;
>   
>   static struct avd_sutype *sutype_new(const SaNameT *dn)
>   {
> @@ -36,7 +36,6 @@ static struct avd_sutype *sutype_new(con
>   
>       memcpy(sutype->name.value, dn->value, dn->length);
>       sutype->name.length = dn->length;
> -     sutype->tree_node.key_info = (uint8_t *)&(sutype->name);
>   
>       return sutype;
>   }
> @@ -51,26 +50,10 @@ static void sutype_delete(struct avd_sut
>   
>   static void sutype_db_add(struct avd_sutype *sutype)
>   {
> -     unsigned int rc = ncs_patricia_tree_add(&sutype_db, &sutype->tree_node);
> +     unsigned int rc = 
> sutype_db->insert(Amf::to_string(&sutype->name),sutype);
>       osafassert(rc == NCSCC_RC_SUCCESS);
>   }
>   
> -static void sutype_db_delete(struct avd_sutype *sutype)
> -{
> -     unsigned int rc = ncs_patricia_tree_del(&sutype_db, &sutype->tree_node);
> -     osafassert(rc == NCSCC_RC_SUCCESS);
> -}
> -
> -struct avd_sutype *avd_sutype_get(const SaNameT *dn)
> -{
> -     SaNameT tmp = {0};
> -
> -     tmp.length = dn->length;
> -     memcpy(tmp.value, dn->value, tmp.length);
> -
> -     return (struct avd_sutype *)ncs_patricia_tree_get(&sutype_db, (uint8_t 
> *)&tmp);
> -}
> -
>   static struct avd_sutype *sutype_create(const SaNameT *dn, const 
> SaImmAttrValuesT_2 **attributes)
>   {
>       const SaImmAttrValuesT_2 *attr;
> @@ -208,7 +191,7 @@ SaAisErrorT avd_sutype_config_get(void)
>               if (!is_config_valid(&dn, attributes, NULL))
>                   goto done2;
>   
> -             if (( sut = avd_sutype_get(&dn)) == NULL) {
> +             if (( sut = sutype_db->find(Amf::to_string(&dn))) == NULL) {
>   
>                       if ((sut = sutype_create(&dn, attributes)) == NULL) {
>                               error = SA_AIS_ERR_FAILED_OPERATION;
> @@ -243,7 +226,7 @@ static void sutype_ccb_apply_modify_hdlr
>       int i = 0;
>   
>       TRACE_ENTER2("CCB ID %llu, '%s'", opdata->ccbId, 
> opdata->objectName.value);
> -     avd_sutype *sut = avd_sutype_get(&opdata->objectName);
> +     avd_sutype *sut = sutype_db->find(Amf::to_string(&opdata->objectName));
>   
>       while ((attr_mod = opdata->param.modify.attrMods[i++]) != NULL) {
>               if (!strcmp(attr_mod->modAttr.attrName, 
> "saAmfSutDefSUFailover")) {
> @@ -284,8 +267,8 @@ static void sutype_ccb_apply_cb(CcbUtilO
>               sutype_ccb_apply_modify_hdlr(opdata);
>               break;
>       case CCBUTIL_DELETE:
> -             sut = avd_sutype_get(&opdata->objectName);
> -             sutype_db_delete(sut);
> +             sut = sutype_db->find(Amf::to_string(&opdata->objectName));
> +             sutype_db->erase(Amf::to_string(&sut->name));
>               sutype_delete(&sut);
>               break;
>       default:
> @@ -306,7 +289,7 @@ static SaAisErrorT sutype_ccb_completed_
>       SaAisErrorT rc = SA_AIS_OK;
>       const SaImmAttrModificationT_2 *attr_mod;
>       int i = 0;
> -     avd_sutype *sut = avd_sutype_get(&opdata->objectName);
> +     avd_sutype *sut = sutype_db->find(Amf::to_string(&opdata->objectName));
>   
>       TRACE_ENTER2("CCB ID %llu, '%s'", opdata->ccbId, 
> opdata->objectName.value);
>       while ((attr_mod = opdata->param.modify.attrMods[i++]) != NULL) {
> @@ -372,7 +355,7 @@ static SaAisErrorT sutype_ccb_completed_
>               rc = sutype_ccb_completed_modify_hdlr(opdata);
>               break;
>       case CCBUTIL_DELETE:
> -             sut = avd_sutype_get(&opdata->objectName);
> +             sut = sutype_db->find(Amf::to_string(&opdata->objectName));
>               if (NULL != sut->list_of_su) {
>                       /* check whether there exists a delete operation for
>                        * each of the SU in the su_type list in the current CCB
> @@ -439,11 +422,8 @@ void avd_sutype_remove_su(AVD_SU* su)
>   
>   void avd_sutype_constructor(void)
>   {
> -     NCS_PATRICIA_PARAMS patricia_params;
>   
> -     patricia_params.key_size = sizeof(SaNameT);
> -     osafassert(ncs_patricia_tree_init(&sutype_db, &patricia_params) == 
> NCSCC_RC_SUCCESS);
> -
> +     sutype_db = new AmfDb<std::string, avd_sutype>;
>       avd_class_impl_set("SaAmfSUBaseType", NULL, NULL,
>               avd_imm_default_OK_completed_cb, NULL);
>       avd_class_impl_set("SaAmfSUType", NULL, NULL,


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