osaf/services/saf/amf/amfd/include/si.h      |   4 +--
 osaf/services/saf/amf/amfd/si.cc             |   1 -
 osaf/services/saf/amf/amfd/svctypecstypes.cc |  40 +++++++--------------------
 3 files changed, 12 insertions(+), 33 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
@@ -69,7 +69,6 @@ typedef struct avd_sirankedsu {
  */
 typedef struct avd_si_tag {
 
-       NCS_PATRICIA_NODE tree_node;    /* key will be the SI name */
        SaNameT name;
 
        /******************** B.04 model 
*************************************************/
@@ -121,7 +120,6 @@ typedef struct avd_amf_svc_type_tag {
 } AVD_SVC_TYPE;
 
 typedef struct {
-       NCS_PATRICIA_NODE tree_node;    /* key is name */
        SaNameT name;
        SaUint32T saAmfSvctMaxNumCSIs;
 
@@ -133,6 +131,7 @@ typedef struct {
 } AVD_SVC_TYPE_CS_TYPE;
 
 extern AmfDb<AVD_SI> *si_db;
+extern AmfDb<AVD_SVC_TYPE_CS_TYPE> *svctypecstypes_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
@@ -161,7 +160,6 @@ extern void avd_svctype_remove_si(AVD_SI
 extern void avd_svctype_constructor(void);
 
 extern SaAisErrorT avd_svctypecstypes_config_get(SaNameT *svctype_name);
-extern AVD_SVC_TYPE_CS_TYPE *avd_svctypecstypes_get(const SaNameT 
*svctypecstypes_name);
 extern void avd_svctypecstypes_constructor(void);
 extern void avd_si_inc_curr_act_ass(AVD_SI *si);
 extern void avd_si_dec_curr_act_ass(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
@@ -331,7 +331,6 @@ AVD_SI *avd_si_new(const SaNameT *dn)
 
        memcpy(si->name.value, dn->value, dn->length);
        si->name.length = dn->length;
-       si->tree_node.key_info = (uint8_t *)&si->name;
        si->si_switch = AVSV_SI_TOGGLE_STABLE;
        si->saAmfSIAdminState = SA_AMF_ADMIN_UNLOCKED;
        si->si_dep_state = AVD_SI_NO_DEPENDENCY;
diff --git a/osaf/services/saf/amf/amfd/svctypecstypes.cc 
b/osaf/services/saf/amf/amfd/svctypecstypes.cc
--- a/osaf/services/saf/amf/amfd/svctypecstypes.cc
+++ b/osaf/services/saf/amf/amfd/svctypecstypes.cc
@@ -20,11 +20,11 @@
 #include <si.h>
 #include <imm.h>
 
-static NCS_PATRICIA_TREE svctypecstypes_db;
 
+AmfDb<AVD_SVC_TYPE_CS_TYPE> *svctypecstypes_db = NULL;
 static void svctypecstype_db_add(AVD_SVC_TYPE_CS_TYPE *svctypecstype)
 {
-       unsigned int rc = ncs_patricia_tree_add(&svctypecstypes_db, 
&svctypecstype->tree_node);
+       uint32_t rc = svctypecstypes_db->insert(svctypecstype);
        osafassert(rc == NCSCC_RC_SUCCESS);
 }
 
@@ -39,7 +39,6 @@ static AVD_SVC_TYPE_CS_TYPE *svctypecsty
 
        memcpy(svctypecstype->name.value, dn->value, dn->length);
        svctypecstype->name.length = dn->length;
-       svctypecstype->tree_node.key_info = (uint8_t *)&(svctypecstype->name);
 
        if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfSvctMaxNumCSIs"), 
attributes, 0, &svctypecstype->saAmfSvctMaxNumCSIs) != SA_AIS_OK)
                svctypecstype->saAmfSvctMaxNumCSIs = -1; /* no limit */
@@ -47,25 +46,6 @@ static AVD_SVC_TYPE_CS_TYPE *svctypecsty
        return svctypecstype;
 }
 
-static void svctypecstypes_delete(AVD_SVC_TYPE_CS_TYPE *svctypecstype)
-{
-       uint32_t rc;
-
-       rc = ncs_patricia_tree_del(&svctypecstypes_db, 
&svctypecstype->tree_node);
-       osafassert(rc == NCSCC_RC_SUCCESS);
-       delete svctypecstype;
-}
-
-AVD_SVC_TYPE_CS_TYPE *avd_svctypecstypes_get(const SaNameT *dn)
-{
-       SaNameT tmp = {0};
-
-       tmp.length = dn->length;
-       memcpy(tmp.value, dn->value, tmp.length);
-
-       return (AVD_SVC_TYPE_CS_TYPE*)ncs_patricia_tree_get(&svctypecstypes_db, 
(uint8_t *)&tmp);
-}
-
 /**
  * Get configuration for all SaAmfSvcTypeCSTypes objects from 
  * IMM and create AVD internal objects. 
@@ -100,7 +80,7 @@ SaAisErrorT avd_svctypecstypes_config_ge
 
        while (immutil_saImmOmSearchNext_2(searchHandle, &dn, 
(SaImmAttrValuesT_2 ***)&attributes) == SA_AIS_OK) {
 
-               if ((svctypecstype = avd_svctypecstypes_get(&dn))== NULL) {
+               if ((svctypecstype = svctypecstypes_db->find(&dn))== NULL) {
                        if ((svctypecstype = svctypecstypes_create(&dn, 
attributes)) == NULL) {
                                error = SA_AIS_ERR_FAILED_OPERATION;
                                goto done2;
@@ -138,7 +118,7 @@ static SaAisErrorT svctypecstypes_ccb_co
                report_ccb_validation_error(opdata, "Modification of 
SaAmfSvcTypeCSTypes not supported");
                break;
        case CCBUTIL_DELETE:
-               svctypecstype = avd_svctypecstypes_get(&opdata->objectName);
+               svctypecstype = svctypecstypes_db->find(&opdata->objectName);
                if (svctypecstype->curr_num_csis == 0) {
                        rc = SA_AIS_OK;
                        opdata->userData = svctypecstype;
@@ -171,7 +151,12 @@ static void svctypecstypes_ccb_apply_cb(
                svctypecstype_db_add(svctypecstype);
                break;
        case CCBUTIL_DELETE:
-               
svctypecstypes_delete(static_cast<AVD_SVC_TYPE_CS_TYPE*>(opdata->userData));
+               svctypecstype = svctypecstypes_db->find(&opdata->objectName);
+               if (svctypecstype != NULL) {
+                       
svctypecstypes_db->erase(static_cast<AVD_SVC_TYPE_CS_TYPE*>(opdata->userData));
+                       delete svctypecstype;
+               }
+
                break;
        default:
                osafassert(0);
@@ -181,10 +166,7 @@ static void svctypecstypes_ccb_apply_cb(
 
 void avd_svctypecstypes_constructor(void)
 {
-       NCS_PATRICIA_PARAMS patricia_params;
-
-       patricia_params.key_size = sizeof(SaNameT);
-       osafassert(ncs_patricia_tree_init(&svctypecstypes_db, &patricia_params) 
== NCSCC_RC_SUCCESS);
+       svctypecstypes_db = new AmfDb<AVD_SVC_TYPE_CS_TYPE>;
        avd_class_impl_set("SaAmfSvcTypeCSTypes", NULL, NULL,
                svctypecstypes_ccb_completed_cb, svctypecstypes_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