osaf/services/saf/amf/amfd/ckpt_updt.cc  |   6 ++--
 osaf/services/saf/amf/amfd/csi.cc        |  42 +++++++++----------------------
 osaf/services/saf/amf/amfd/csiattr.cc    |  12 ++++----
 osaf/services/saf/amf/amfd/include/csi.h |   2 +-
 osaf/services/saf/amf/amfd/pg.cc         |   2 +-
 osaf/services/saf/amf/amfd/sgproc.cc     |   8 +++---
 6 files changed, 28 insertions(+), 44 deletions(-)


diff --git a/osaf/services/saf/amf/amfd/ckpt_updt.cc 
b/osaf/services/saf/amf/amfd/ckpt_updt.cc
--- a/osaf/services/saf/amf/amfd/ckpt_updt.cc
+++ b/osaf/services/saf/amf/amfd/ckpt_updt.cc
@@ -443,7 +443,7 @@ uint32_t avd_ckpt_siass(AVD_CL_CB *cb, A
                                        LOG_ER("avd_comp_get FAILED for '%s'", 
su_si_rel_ptr->comp_name.value);
                                        return NCSCC_RC_FAILURE;
                                }
-                               if ((csi_ptr = avd_csi_get 
(&(su_si_rel_ptr->csi_name))) == NULL) {
+                               if ((csi_ptr = 
csi_db->find(Amf::to_string(&(su_si_rel_ptr->csi_name)))) == NULL) {
                                        /* This condition will arise if there 
is some delay in the ccb apply callback
                                         * So create csi and add it to the 
csi_db here, later in the ccb apply callback
                                         * attributes will be updated and csi 
will be added to the model
@@ -474,8 +474,8 @@ uint32_t avd_ckpt_siass(AVD_CL_CB *cb, A
                                        return NCSCC_RC_FAILURE;
                                }
 
-                               if ((csi_ptr = avd_csi_get 
(&(su_si_ckpt->csi_name))) == NULL) {
-                                       LOG_ER("avd_csi_get FAILED for 
'%s'",su_si_ckpt->csi_name.value);
+                               if ((csi_ptr = 
csi_db->find(Amf::to_string(&(su_si_ckpt->csi_name)))) == NULL) {
+                                       LOG_ER("csi_db->find() FAILED for 
'%s'",su_si_ckpt->csi_name.value);
                                        return NCSCC_RC_FAILURE;
                                }
                                /* Find the relevant comp-csi to send susi 
delete. */
diff --git a/osaf/services/saf/amf/amfd/csi.cc 
b/osaf/services/saf/amf/amfd/csi.cc
--- a/osaf/services/saf/amf/amfd/csi.cc
+++ b/osaf/services/saf/amf/amfd/csi.cc
@@ -24,12 +24,11 @@
 #include <imm.h>
 #include <proc.h>
 
-static NCS_PATRICIA_TREE csi_db;
+AmfDb<std::string, AVD_CSI> *csi_db = NULL;
 
 void avd_csi_delete(AVD_CSI *csi)
 {
        AVD_CSI_ATTR *temp;
-       unsigned int rc;
        TRACE_ENTER2("%s", csi->name.value);
 
        /* Delete CSI attributes */
@@ -42,8 +41,7 @@ void avd_csi_delete(AVD_CSI *csi)
        avd_cstype_remove_csi(csi);
        avd_si_remove_csi(csi);
 
-       rc = ncs_patricia_tree_del(&csi_db, &csi->tree_node);
-       osafassert(rc == NCSCC_RC_SUCCESS);
+       csi_db->erase(Amf::to_string(&csi->name));
        
        if (csi->saAmfCSIDependencies != NULL) {
                AVD_CSI_DEPS *csi_dep;
@@ -81,16 +79,6 @@ void csi_cmplt_delete(AVD_CSI *csi, bool
        TRACE_LEAVE2();
 }
 
-AVD_CSI *avd_csi_get(const SaNameT *dn)
-{
-       SaNameT tmp = {0};
-
-       tmp.length = dn->length;
-       memcpy(tmp.value, dn->value, tmp.length);
-       
-       return (AVD_CSI *)ncs_patricia_tree_get(&csi_db, (uint8_t *)&tmp);
-}
-
 /**
  * Validate configuration attributes for an AMF CSI object
  * @param csi
@@ -148,7 +136,7 @@ static int is_config_valid(const SaNameT
                                return 0;
                        }
 
-                       if (avd_csi_get(&saAmfCSIDependency) == NULL) {
+                       if (csi_db->find(Amf::to_string(&saAmfCSIDependency)) 
== NULL) {
                                /* CSI does not exist in current model, check 
CCB if passed as param */
                                if (opdata == NULL) {
                                        /* initial loading, check IMM */
@@ -271,9 +259,8 @@ AVD_CSI *csi_create(const SaNameT *csi_n
        csi = new AVD_CSI();
        memcpy(csi->name.value, csi_name->value, csi_name->length);
        csi->name.length = csi_name->length;
-       csi->tree_node.key_info = (uint8_t *)&(csi->name);
 
-       if (ncs_patricia_tree_add(&csi_db, &csi->tree_node) != NCSCC_RC_SUCCESS)
+       if (csi_db->insert(Amf::to_string(&csi->name), csi) != NCSCC_RC_SUCCESS)
                osafassert(0);
 
        return csi;
@@ -382,7 +369,7 @@ SaAisErrorT avd_csi_config_get(const SaN
                if (!is_config_valid(&csi_name, attributes, NULL))
                        goto done2;
 
-               if ((csi = avd_csi_get (&csi_name)) == NULL)
+               if ((csi = csi_db->find(Amf::to_string(&csi_name))) == NULL)
                {
                        csi = csi_create(&csi_name);
 
@@ -539,7 +526,7 @@ static SaAisErrorT csi_ccb_completed_mod
                if (!strcmp(attr_mod->modAttr.attrName, "saAmfCSType")) {
                        AVD_CSI *csi;
                        SaNameT cstype_name = *(SaNameT*) 
attr_mod->modAttr.attrValues[0];
-                       csi = avd_csi_get(&opdata->objectName);
+                       csi = csi_db->find(Amf::to_string(&opdata->objectName));
                        if(SA_AMF_ADMIN_LOCKED != csi->si->saAmfSIAdminState) {
                                report_ccb_validation_error(opdata, "Parent SI 
is not in locked state, SI state '%d'",
                                                csi->si->saAmfSIAdminState);
@@ -587,7 +574,7 @@ static SaAisErrorT csi_ccb_completed_del
 
        TRACE_ENTER2("CCB ID %llu, '%s'", opdata->ccbId, 
opdata->objectName.value);
 
-       csi = avd_csi_get(&opdata->objectName);
+       csi = csi_db->find(Amf::to_string(&opdata->objectName));
 
        if (avd_cb->avail_state_avd != SA_AMF_HA_ACTIVE) {
                if (csi == NULL) {
@@ -677,15 +664,15 @@ static void ccb_apply_delete_hdlr(CcbUti
        AVD_SU_SI_REL *t_sisu;
        AVD_COMP_CSI_REL *t_csicomp;
        AVD_CSI *csi = static_cast<AVD_CSI*>(opdata->userData);
-       AVD_CSI *csi_db;
+       AVD_CSI *csi_in_db;
 
        bool first_sisu = true;
 
        if (avd_cb->avail_state_avd != SA_AMF_HA_ACTIVE) { 
                /* A double check whether csi has been deleted from DB or not 
and whether pointer stored userData 
                   is still valid. */
-               csi_db =  avd_csi_get(&opdata->objectName);
-               if ((csi == NULL) || (csi_db == NULL)) {
+               csi_in_db =  csi_db->find(Amf::to_string(&opdata->objectName));
+               if ((csi == NULL) || (csi_in_db == NULL)) {
                        /* This means that csi has been deleted during 
checkpointing at STDBY and delete callback
                           has arrived delayed.*/
                        LOG_WA("CSI delete apply (STDBY): csi does not exist");
@@ -771,7 +758,7 @@ static void csi_ccb_apply_modify_hdlr(st
 
         TRACE_ENTER2("CCB ID %llu, '%s'", opdata->ccbId, 
opdata->objectName.value);
  
-       csi = avd_csi_get(&opdata->objectName);
+       csi = csi_db->find(Amf::to_string(&opdata->objectName));
        while ((attr_mod = opdata->param.modify.attrMods[i++]) != NULL) {
                if (!strcmp(attr_mod->modAttr.attrName, "saAmfCSType")) {
                        struct avd_cstype *csi_type;
@@ -809,7 +796,7 @@ static void csi_ccb_apply_modify_hdlr(st
 static void csi_ccb_apply_create_hdlr(struct CcbUtilOperationData *opdata)
 {
        AVD_CSI *csi = NULL;
-       if ((csi = avd_csi_get (&opdata->objectName)) == NULL) {
+       if ((csi = csi_db->find(Amf::to_string(&opdata->objectName))) == NULL) {
                /* this check is added because, some times there is
                   possibility that before getting ccb apply callback
                   we might get compcsi create checkpoint and csi will
@@ -1255,10 +1242,7 @@ void avd_csi_add_csiattr(AVD_CSI *csi, A
 
 void avd_csi_constructor(void)
 {
-       NCS_PATRICIA_PARAMS patricia_params;
-
-       patricia_params.key_size = sizeof(SaNameT);
-       osafassert(ncs_patricia_tree_init(&csi_db, &patricia_params) == 
NCSCC_RC_SUCCESS);
+       csi_db = new AmfDb<std::string, AVD_CSI>;
        avd_class_impl_set("SaAmfCSI", NULL, NULL, csi_ccb_completed_cb,
                csi_ccb_apply_cb);
 }
diff --git a/osaf/services/saf/amf/amfd/csiattr.cc 
b/osaf/services/saf/amf/amfd/csiattr.cc
--- a/osaf/services/saf/amf/amfd/csiattr.cc
+++ b/osaf/services/saf/amf/amfd/csiattr.cc
@@ -296,7 +296,7 @@ static SaAisErrorT csiattr_ccb_completed
                        SA_MAX_NAME_LENGTH); 
        csi_dn.length = strlen((char *)&csi_dn.value);
 
-       if (NULL == (csi = avd_csi_get(&csi_dn))) {
+       if (NULL == (csi = csi_db->find(Amf::to_string(&csi_dn)))) {
                /* if CSI is NULL, that means the CSI is added in the same CCB
                 * so allow the csi attributes also to be added in any state of 
the parent SI
                 */
@@ -353,7 +353,7 @@ static SaAisErrorT csiattr_ccb_completed
                        SA_MAX_NAME_LENGTH);
        csi_dn.length = strlen((char *)&csi_dn.value);
 
-       if (NULL == (csi = avd_csi_get(&csi_dn))) {
+       if (NULL == (csi = csi_db->find(Amf::to_string(&csi_dn)))) {
                report_ccb_validation_error(opdata, "csi '%s' doesn't exists", 
csi_dn.value);
                goto done;
        }
@@ -454,7 +454,7 @@ static SaAisErrorT csiattr_ccb_completed
                         SA_MAX_NAME_LENGTH);
         csi_dn.length = strlen((char *)&csi_dn.value);
 
-        if (NULL == (csi = avd_csi_get(&csi_dn))) {
+        if (NULL == (csi = csi_db->find(Amf::to_string(&csi_dn)))) {
                 report_ccb_validation_error(opdata, "csi '%s' doesn't exists", 
csi_dn.value);
                 goto done;
         }
@@ -505,7 +505,7 @@ static void csiattr_create_apply(CcbUtil
        AVD_CSI *csi;
 
        csiattr = csiattr_create(&opdata->objectName, 
opdata->param.create.attrValues);
-       csi = avd_csi_get(opdata->param.create.parentName);
+       csi = csi_db->find(Amf::to_string(opdata->param.create.parentName));
        avd_csi_add_csiattr(csi, csiattr);
 }
 
@@ -525,7 +525,7 @@ static void csiattr_modify_apply(CcbUtil
                         SA_MAX_NAME_LENGTH);
         csi_dn.length = strlen((char *)&csi_dn.value);
 
-        csi = avd_csi_get(&csi_dn);
+        csi = csi_db->find(Amf::to_string(&csi_dn));
 
         csiattr_dn_to_csiattr_name(&opdata->objectName, &csi_attr_name);
        /* create new name-value pairs for the modified csi attribute */
@@ -634,7 +634,7 @@ static void csiattr_delete_apply(CcbUtil
                         SA_MAX_NAME_LENGTH);
         csi_dn.length = strlen((char *)&csi_dn.value);
 
-        csi = avd_csi_get(&csi_dn);
+        csi = csi_db->find(Amf::to_string(&csi_dn));
 
        if (NULL == csi) {
                /* This is the case when csi might have been deleted before csi 
attr. 
diff --git a/osaf/services/saf/amf/amfd/include/csi.h 
b/osaf/services/saf/amf/amfd/include/csi.h
--- a/osaf/services/saf/amf/amfd/include/csi.h
+++ b/osaf/services/saf/amf/amfd/include/csi.h
@@ -54,7 +54,6 @@ typedef struct avd_csi_deps_tag {
  * associated with the CSI on the AvD.
  */
 typedef struct avd_csi_tag {
-       NCS_PATRICIA_NODE tree_node;    /* key will be the CSI name */
 
        SaNameT name;
        SaNameT saAmfCSType;
@@ -82,6 +81,7 @@ typedef struct avd_csi_tag {
        bool assign_flag;   /* Flag used while assigning. to mark this csi has 
been assigned a Comp 
                                   from * current SI being assigned */
 } AVD_CSI;
+extern AmfDb<std::string, AVD_CSI> *csi_db;
 
 typedef struct avd_cstype {
        SaNameT name;           /* name of the CSType */
diff --git a/osaf/services/saf/amf/amfd/pg.cc b/osaf/services/saf/amf/amfd/pg.cc
--- a/osaf/services/saf/amf/amfd/pg.cc
+++ b/osaf/services/saf/amf/amfd/pg.cc
@@ -82,7 +82,7 @@ void avd_pg_trk_act_evh(AVD_CL_CB *cb, A
        }
 
        /* get the node & csi */
-       csi = avd_csi_get(&info->csi_name);
+       csi = csi_db->find(Amf::to_string(&info->csi_name));
 
        /* update the pg lists maintained on csi & node */
        if (csi != NULL) {
diff --git a/osaf/services/saf/amf/amfd/sgproc.cc 
b/osaf/services/saf/amf/amfd/sgproc.cc
--- a/osaf/services/saf/amf/amfd/sgproc.cc
+++ b/osaf/services/saf/amf/amfd/sgproc.cc
@@ -913,7 +913,7 @@ void avd_su_si_assign_evh(AVD_CL_CB *cb,
                                susi->csi_add_rem = static_cast<SaBoolT>(false);
                                comp = avd_comp_get(&susi->comp_name);
                                osafassert(comp);
-                               csi = avd_csi_get(&susi->csi_name);
+                               csi = 
csi_db->find(Amf::to_string(&susi->csi_name));
                                osafassert(csi);
 
                                for (t_comp_csi = susi->list_of_csicomp; 
t_comp_csi; t_comp_csi = t_comp_csi->susi_csicomp_next) { 
@@ -935,7 +935,7 @@ void avd_su_si_assign_evh(AVD_CL_CB *cb,
                                                all_csi_rem = false;
                                                comp = 
avd_comp_get(&t_sisu->comp_name);
                                                osafassert(comp);
-                                               csi = 
avd_csi_get(&t_sisu->csi_name);
+                                               csi = 
csi_db->find(Amf::to_string(&t_sisu->csi_name));
                                                osafassert(csi);
 
                                                for (t_comp_csi = 
t_sisu->list_of_csicomp; t_comp_csi; t_comp_csi = 
t_comp_csi->susi_csicomp_next) {
@@ -974,7 +974,7 @@ void avd_su_si_assign_evh(AVD_CL_CB *cb,
                                susi->csi_add_rem = static_cast<SaBoolT>(false);
                                comp = avd_comp_get(&susi->comp_name);
                                osafassert(comp);
-                               csi = avd_csi_get(&susi->csi_name);
+                               csi = 
csi_db->find(Amf::to_string(&susi->csi_name));
                                osafassert(csi);
 
                                for (t_comp_csi = susi->list_of_csicomp; 
t_comp_csi; t_comp_csi = t_comp_csi->susi_csicomp_next) {
@@ -991,7 +991,7 @@ void avd_su_si_assign_evh(AVD_CL_CB *cb,
                                                /* Find the comp csi 
relationship. */
                                                comp = 
avd_comp_get(&t_sisu->comp_name);
                                                osafassert(comp);
-                                               csi = 
avd_csi_get(&t_sisu->csi_name);
+                                               csi = 
csi_db->find(Amf::to_string(&t_sisu->csi_name));
                                                osafassert(csi);
 
                                                for (t_comp_csi = 
t_sisu->list_of_csicomp; t_comp_csi; t_comp_csi = 
t_comp_csi->susi_csicomp_next) { 

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