ack, code review only/Regards HansN
On 06/04/14 12:20, praveen.malv...@oracle.com wrote:
>   osaf/services/saf/amf/amfd/apptype.cc       |   2 +-
>   osaf/services/saf/amf/amfd/include/sgtype.h |   4 +-
>   osaf/services/saf/amf/amfd/sg.cc            |  12 +++++-----
>   osaf/services/saf/amf/amfd/sgtype.cc        |  32 
> +++++++---------------------
>   4 files changed, 17 insertions(+), 33 deletions(-)
>
>
> diff --git a/osaf/services/saf/amf/amfd/apptype.cc 
> b/osaf/services/saf/amf/amfd/apptype.cc
> --- a/osaf/services/saf/amf/amfd/apptype.cc
> +++ b/osaf/services/saf/amf/amfd/apptype.cc
> @@ -79,7 +79,7 @@ static int is_config_valid(const SaNameT
>   
>       for (j = 0; j < attr->attrValuesNumber; j++) {
>               SaNameT *name = (SaNameT *)attr->attrValues[j];
> -             sg_type = avd_sgtype_get(name);
> +             sg_type = sgtype_db->find(Amf::to_string(name));
>               if (sg_type == 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/include/sgtype.h 
> b/osaf/services/saf/amf/amfd/include/sgtype.h
> --- a/osaf/services/saf/amf/amfd/include/sgtype.h
> +++ b/osaf/services/saf/amf/amfd/include/sgtype.h
> @@ -26,12 +26,11 @@
>   #define AVD_SGTYPE_H
>   
>   #include <saAmf.h>
> -#include <ncspatricia.h>
> +#include <include/db_template.h>
>   
>   struct avd_sg_tag;
>   
>   typedef struct avd_amf_sg_type_tag {
> -     NCS_PATRICIA_NODE tree_node;    /* key will be sg type name */
>       SaNameT name;
>       bool saAmfSgtDefAutoRepair_configured; /* True when user configures 
> saAmfSGDefAutoRepair else false */
>      /******************** B.04 model 
> *************************************************/
> @@ -51,6 +50,7 @@ typedef struct avd_amf_sg_type_tag {
>   
>   } AVD_AMF_SG_TYPE;
>   
> +extern AmfDb<std::string, AVD_AMF_SG_TYPE> *sgtype_db;
>   SaAisErrorT avd_sgtype_config_get(void);
>   AVD_AMF_SG_TYPE *avd_sgtype_get(const SaNameT *dn);
>   void avd_sgtype_add_sg(struct avd_sg_tag *sg);
> diff --git a/osaf/services/saf/amf/amfd/sg.cc 
> b/osaf/services/saf/amf/amfd/sg.cc
> --- a/osaf/services/saf/amf/amfd/sg.cc
> +++ b/osaf/services/saf/amf/amfd/sg.cc
> @@ -65,7 +65,7 @@ static void sg_add_to_model(AVD_SG *sg)
>       sg->app = app_db->find(Amf::to_string(&dn));
>   
>       avd_sg_db_add(sg);
> -     sg->sg_type = avd_sgtype_get(&sg->saAmfSGType);
> +     sg->sg_type = sgtype_db->find(Amf::to_string(&sg->saAmfSGType));
>       osafassert(sg->sg_type);
>       avd_sgtype_add_sg(sg);
>       avd_app_add_sg(sg->app, sg);
> @@ -195,7 +195,7 @@ static int is_config_valid(const SaNameT
>       rc = immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfSGType"), 
> attributes, 0, &aname);
>       osafassert(rc == SA_AIS_OK);
>   
> -     if (avd_sgtype_get(&aname) == NULL) {
> +     if (sgtype_db->find(Amf::to_string(&aname)) == NULL) {
>               if (opdata == NULL) {
>                       report_ccb_validation_error(opdata, "'%s' does not 
> exist in model", aname.value);
>                       return 0;
> @@ -258,7 +258,7 @@ static AVD_SG *sg_create(const SaNameT *
>       error = immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfSGType"), 
> attributes, 0, &sg->saAmfSGType);
>       osafassert(error == SA_AIS_OK);
>   
> -     sgt = avd_sgtype_get(&sg->saAmfSGType);
> +     sgt = sgtype_db->find(Amf::to_string(&sg->saAmfSGType));
>       osafassert(sgt);
>       sg->sg_type = sgt;
>   
> @@ -557,7 +557,7 @@ static SaAisErrorT ccb_completed_modify_
>                                       goto done;
>                               }
>   
> -                             if (avd_sgtype_get(&sg_type_name) == NULL) {
> +                             if 
> (sgtype_db->find(Amf::to_string(&sg_type_name)) == NULL) {
>                                       report_ccb_validation_error(opdata,
>                                               "SG Type '%s' not found", 
> sg_type_name.value);
>                                       rc = SA_AIS_ERR_BAD_OPERATION;
> @@ -797,7 +797,7 @@ static void ccb_apply_modify_hdlr(CcbUti
>       sg = sg_db->find(Amf::to_string(&opdata->objectName));
>       assert(sg != NULL);
>   
> -     sg_type = avd_sgtype_get(&sg->saAmfSGType);
> +     sg_type = sgtype_db->find(Amf::to_string(&sg->saAmfSGType));
>       osafassert(NULL != sg_type);
>   
>       if (sg->saAmfSGAdminState != SA_AMF_ADMIN_UNLOCKED) {
> @@ -819,7 +819,7 @@ static void ccb_apply_modify_hdlr(CcbUti
>                               TRACE("saAmfSGType modified from '%s' to '%s' 
> of Sg'%s'", sg->saAmfSGType.value,
>                                               sg_type_name.value, 
> sg->name.value);
>   
> -                             sg_type = avd_sgtype_get(&sg_type_name);
> +                             sg_type = 
> sgtype_db->find(Amf::to_string(&sg_type_name));
>                               osafassert(NULL != sg_type);
>   
>                               /* Remove from old type */
> 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
> @@ -28,7 +28,7 @@
>   #include <sgtype.h>
>   #include <proc.h>
>   
> -static NCS_PATRICIA_TREE sgtype_db;
> +AmfDb<std::string, AVD_AMF_SG_TYPE> *sgtype_db = NULL;
>   
>   void avd_sgtype_add_sg(AVD_SG *sg)
>   {
> @@ -65,19 +65,9 @@ void avd_sgtype_remove_sg(AVD_SG *sg)
>       }
>   }
>   
> -AVD_AMF_SG_TYPE *avd_sgtype_get(const SaNameT *dn)
> -{
> -     SaNameT tmp = {0};
> -
> -     tmp.length = dn->length;
> -     memcpy(tmp.value, dn->value, tmp.length);
> -
> -     return (AVD_AMF_SG_TYPE *)ncs_patricia_tree_get(&sgtype_db, (uint8_t 
> *)&tmp);
> -}
> -
>   static void sgtype_delete(AVD_AMF_SG_TYPE *sg_type)
>   {
> -     (void)ncs_patricia_tree_del(&sgtype_db, &sg_type->tree_node);
> +     sgtype_db->erase(Amf::to_string(&sg_type->name));
>       delete [] sg_type->saAmfSGtValidSuTypes;
>       delete sg_type;
>   }
> @@ -88,9 +78,7 @@ static void sgtype_delete(AVD_AMF_SG_TYP
>    */
>   static void sgtype_add_to_model(AVD_AMF_SG_TYPE *sgt)
>   {
> -     unsigned int rc;
> -
> -     rc = ncs_patricia_tree_add(&sgtype_db, &sgt->tree_node);
> +     unsigned int rc = sgtype_db->insert(Amf::to_string(&sgt->name),sgt);
>       osafassert(rc == NCSCC_RC_SUCCESS);
>   }
>   
> @@ -201,7 +189,6 @@ static AVD_AMF_SG_TYPE *sgtype_create(Sa
>   
>       memcpy(sgt->name.value, dn->value, dn->length);
>       sgt->name.length = dn->length;
> -     sgt->tree_node.key_info = (uint8_t *)&(sgt->name);
>   
>       error = 
> immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfSgtRedundancyModel"), 
> attributes, 0, &sgt->saAmfSgtRedundancyModel);
>       osafassert(error == SA_AIS_OK);
> @@ -300,7 +287,7 @@ SaAisErrorT avd_sgtype_config_get(void)
>       while (immutil_saImmOmSearchNext_2(searchHandle, &dn, 
> (SaImmAttrValuesT_2 ***)&attributes) == SA_AIS_OK) {
>               if (!is_config_valid(&dn, attributes, NULL))
>                       goto done2;
> -             if (( sgt = avd_sgtype_get(&dn)) == NULL) {
> +             if (( sgt = sgtype_db->find(Amf::to_string(&dn))) == NULL) {
>                       if ((sgt = sgtype_create(&dn, attributes)) == NULL)
>                               goto done2;
>   
> @@ -329,7 +316,7 @@ static SaAisErrorT sgtype_ccb_completed_
>       SaAisErrorT rc = SA_AIS_OK;
>       const SaImmAttrModificationT_2 *attr_mod;
>       int i = 0;
> -     AVD_AMF_SG_TYPE *sgt = avd_sgtype_get(&opdata->objectName);
> +     AVD_AMF_SG_TYPE *sgt = 
> sgtype_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) {
> @@ -382,7 +369,7 @@ static SaAisErrorT sgtype_ccb_completed_
>               rc = sgtype_ccb_completed_modify_hdlr(opdata);
>               break;
>       case CCBUTIL_DELETE:
> -             sgt = avd_sgtype_get(&opdata->objectName);
> +             sgt = sgtype_db->find(Amf::to_string(&opdata->objectName));
>               if (sgt->list_of_sg != NULL) {
>                       /* check whether there exists a delete operation for
>                        * each of the SG in the sg_type list in the current CCB
> @@ -425,7 +412,7 @@ static void sgtype_ccb_apply_modify_hdlr
>   
>       TRACE_ENTER2("CCB ID %llu, '%s'", opdata->ccbId, 
> opdata->objectName.value);
>   
> -     AVD_AMF_SG_TYPE *sgt = avd_sgtype_get(&opdata->objectName);
> +     AVD_AMF_SG_TYPE *sgt = 
> sgtype_db->find(Amf::to_string(&opdata->objectName));
>   
>       while ((attr_mod = opdata->param.modify.attrMods[i++]) != NULL) {
>               bool value_is_deleted;
> @@ -500,11 +487,8 @@ static void sgtype_ccb_apply_cb(CcbUtilO
>   
>   void avd_sgtype_constructor(void)
>   {
> -     NCS_PATRICIA_PARAMS patricia_params;
>   
> -     patricia_params.key_size = sizeof(SaNameT);
> -     osafassert(ncs_patricia_tree_init(&sgtype_db, &patricia_params) == 
> NCSCC_RC_SUCCESS);
> -
> +     sgtype_db = new AmfDb<std::string, AVD_AMF_SG_TYPE>;
>       avd_class_impl_set("SaAmfSGType", NULL, NULL, sgtype_ccb_completed_cb,
>               sgtype_ccb_apply_cb);
>       avd_class_impl_set("SaAmfSGBaseType", 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