osaf/services/saf/amf/amfd/include/sutcomptype.h |   3 +-
 osaf/services/saf/amf/amfd/sutcomptype.cc        |  29 ++++-------------------
 2 files changed, 7 insertions(+), 25 deletions(-)


diff --git a/osaf/services/saf/amf/amfd/include/sutcomptype.h 
b/osaf/services/saf/amf/amfd/include/sutcomptype.h
--- a/osaf/services/saf/amf/amfd/include/sutcomptype.h
+++ b/osaf/services/saf/amf/amfd/include/sutcomptype.h
@@ -30,14 +30,13 @@
 #include "sutype.h"
 
 typedef struct {
-       NCS_PATRICIA_NODE tree_node;    /* key is name */
        SaNameT name;
        SaUint32T saAmfSutMaxNumComponents;
        SaUint32T saAmfSutMinNumComponents;
        SaUint32T curr_num_components;
 } AVD_SUTCOMP_TYPE;
+extern AmfDb<std::string, AVD_SUTCOMP_TYPE> *sutcomptype_db;
 
-AVD_SUTCOMP_TYPE *avd_sutcomptype_get(const SaNameT *dn);
 SaAisErrorT avd_sutcomptype_config_get(SaNameT *sutype_name, struct avd_sutype 
*sut);
 void avd_sutcomptype_constructor(void);
 
diff --git a/osaf/services/saf/amf/amfd/sutcomptype.cc 
b/osaf/services/saf/amf/amfd/sutcomptype.cc
--- a/osaf/services/saf/amf/amfd/sutcomptype.cc
+++ b/osaf/services/saf/amf/amfd/sutcomptype.cc
@@ -24,11 +24,11 @@
 #include <sutcomptype.h>
 #include <imm.h>
 
-static NCS_PATRICIA_TREE sutcomptype_db;
+AmfDb<std::string, AVD_SUTCOMP_TYPE> *sutcomptype_db = NULL;
 
 static void sutcomptype_db_add(AVD_SUTCOMP_TYPE *sutcomptype)
 {
-       unsigned int rc = ncs_patricia_tree_add(&sutcomptype_db, 
&sutcomptype->tree_node);
+       unsigned int rc = 
sutcomptype_db->insert(Amf::to_string(&sutcomptype->name),sutcomptype);
        osafassert(rc == NCSCC_RC_SUCCESS);
 }
 
@@ -42,7 +42,6 @@ static AVD_SUTCOMP_TYPE *sutcomptype_cre
 
        memcpy(sutcomptype->name.value, dn->value, dn->length);
        sutcomptype->name.length = dn->length;
-       sutcomptype->tree_node.key_info = (uint8_t *)&(sutcomptype->name);
 
        if 
(immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfSutMaxNumComponents"), 
attributes, 0, &sutcomptype->saAmfSutMaxNumComponents) != SA_AIS_OK)
                sutcomptype->saAmfSutMaxNumComponents = -1; /* no limit */
@@ -55,23 +54,10 @@ static AVD_SUTCOMP_TYPE *sutcomptype_cre
 
 static void sutcomptype_delete(AVD_SUTCOMP_TYPE *sutcomptype)
 {
-       uint32_t rc;
-
-       rc = ncs_patricia_tree_del(&sutcomptype_db, &sutcomptype->tree_node);
-       osafassert(rc == NCSCC_RC_SUCCESS);
+       sutcomptype_db->erase(Amf::to_string(&sutcomptype->name));
        delete sutcomptype;
 }
 
-AVD_SUTCOMP_TYPE *avd_sutcomptype_get(const SaNameT *dn)
-{
-       SaNameT tmp = {0};
-
-       tmp.length = dn->length;
-       memcpy(tmp.value, dn->value, tmp.length);
-
-       return (AVD_SUTCOMP_TYPE *)ncs_patricia_tree_get(&sutcomptype_db, 
(uint8_t *)&tmp);
-}
-
 static int is_config_valid(const SaNameT *dn, const SaImmAttrValuesT_2 
**attributes, CcbUtilOperationData_t *opdata)
 {
        // TODO
@@ -106,7 +92,7 @@ SaAisErrorT avd_sutcomptype_config_get(S
        while (immutil_saImmOmSearchNext_2(searchHandle, &dn, 
(SaImmAttrValuesT_2 ***)&attributes) == SA_AIS_OK) {
                if (!is_config_valid(&dn, attributes, NULL))
                        goto done2;
-               if ((sutcomptype = avd_sutcomptype_get(&dn)) == NULL) {
+               if ((sutcomptype = sutcomptype_db->find(Amf::to_string(&dn))) 
== NULL) {
                        if ((sutcomptype = sutcomptype_create(&dn, attributes)) 
== NULL) {
                                error = SA_AIS_ERR_FAILED_OPERATION;
                                goto done2;
@@ -141,7 +127,7 @@ static SaAisErrorT sutcomptype_ccb_compl
                report_ccb_validation_error(opdata, "Modification of 
SaAmfSUType not supported");
                break;
        case CCBUTIL_DELETE:
-               sutcomptype = avd_sutcomptype_get(&opdata->objectName);
+               sutcomptype = 
sutcomptype_db->find(Amf::to_string(&opdata->objectName));
                if (sutcomptype->curr_num_components == 0) {
                        rc = SA_AIS_OK;
                        opdata->userData = sutcomptype; /* Save for later use 
in apply */
@@ -178,11 +164,8 @@ static void sutcomptype_ccb_apply_cb(Ccb
 
 void avd_sutcomptype_constructor(void)
 {
-       NCS_PATRICIA_PARAMS patricia_params;
 
-       patricia_params.key_size = sizeof(SaNameT);
-       osafassert(ncs_patricia_tree_init(&sutcomptype_db, &patricia_params) == 
NCSCC_RC_SUCCESS);
-
+       sutcomptype_db = new AmfDb<std::string, AVD_SUTCOMP_TYPE>;
        avd_class_impl_set("SaAmfSutCompType", NULL, NULL,
                sutcomptype_ccb_completed_cb, sutcomptype_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