osaf/services/saf/amf/amfd/compcstype.cc  |   4 +-
 osaf/services/saf/amf/amfd/ctcstype.cc    |  37 +++++++-----------------------
 osaf/services/saf/amf/amfd/include/comp.h |   5 ++-
 osaf/services/saf/amf/amfd/util.cc        |   2 +-
 4 files changed, 15 insertions(+), 33 deletions(-)


diff --git a/osaf/services/saf/amf/amfd/compcstype.cc 
b/osaf/services/saf/amf/amfd/compcstype.cc
--- a/osaf/services/saf/amf/amfd/compcstype.cc
+++ b/osaf/services/saf/amf/amfd/compcstype.cc
@@ -206,7 +206,7 @@ static int is_config_valid(const SaNameT
 
        ctcstype_name.length = sprintf((char*)ctcstype_name.value, "%s,%s", 
cstype_name, comptype_name->value);
 
-       if (avd_ctcstype_get(&ctcstype_name) == NULL) {
+       if (ctcstype_db->find(&ctcstype_name) == NULL) {
                if (opdata == NULL) {
                        report_ccb_validation_error(opdata, "'%s' does not 
exist in model", ctcstype_name.value);
                        goto free_cstype_name;
@@ -258,7 +258,7 @@ static AVD_COMPCS_TYPE *compcstype_creat
        ctcstype_name.length = sprintf((char*)ctcstype_name.value,
                "%s,%s", cstype_name, comp->comp_type->name.value);
 
-       ctcstype = avd_ctcstype_get(&ctcstype_name);
+       ctcstype = ctcstype_db->find(&ctcstype_name);
 
        if 
(immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompNumMaxActiveCSIs"), 
attributes, 0,
                                &num_max_act_csi) != SA_AIS_OK) {
diff --git a/osaf/services/saf/amf/amfd/ctcstype.cc 
b/osaf/services/saf/amf/amfd/ctcstype.cc
--- a/osaf/services/saf/amf/amfd/ctcstype.cc
+++ b/osaf/services/saf/amf/amfd/ctcstype.cc
@@ -23,11 +23,11 @@
 #include <comp.h>
 #include <imm.h>
 
-static NCS_PATRICIA_TREE ctcstype_db;
+AmfDb<AVD_CTCS_TYPE> *ctcstype_db = NULL;
 
 static void ctcstype_db_add(AVD_CTCS_TYPE *ctcstype)
 {
-       unsigned int rc = ncs_patricia_tree_add(&ctcstype_db, 
&ctcstype->tree_node);
+       unsigned int rc = ctcstype_db->insert(ctcstype);
        osafassert(rc == NCSCC_RC_SUCCESS);
 }
 
@@ -74,7 +74,6 @@ static AVD_CTCS_TYPE *ctcstype_create(co
 
        memcpy(ctcstype->name.value, dn->value, dn->length);
        ctcstype->name.length = dn->length;
-       ctcstype->tree_node.key_info = (uint8_t *)&(ctcstype->name);
 
        error = 
immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCtCompCapability"), 
attributes, 0, &ctcstype->saAmfCtCompCapability);
        osafassert(error == SA_AIS_OK);
@@ -96,25 +95,6 @@ static AVD_CTCS_TYPE *ctcstype_create(co
        return ctcstype;
 }
 
-static void ctcstype_delete(AVD_CTCS_TYPE *ctcstype)
-{
-       unsigned int rc;
-
-       rc = ncs_patricia_tree_del(&ctcstype_db, &ctcstype->tree_node);
-       osafassert(rc == NCSCC_RC_SUCCESS);
-       delete ctcstype;
-}
-
-AVD_CTCS_TYPE *avd_ctcstype_get(const SaNameT *dn)
-{
-       SaNameT tmp = {0};
-
-       tmp.length = dn->length;
-       memcpy(tmp.value, dn->value, tmp.length);
-
-       return (AVD_CTCS_TYPE *)ncs_patricia_tree_get(&ctcstype_db, (uint8_t 
*)&tmp);
-}
-
 SaAisErrorT avd_ctcstype_config_get(const SaNameT *comp_type_dn, AVD_COMP_TYPE 
*comp_type)
 {
        SaAisErrorT error = SA_AIS_ERR_FAILED_OPERATION;
@@ -143,7 +123,7 @@ SaAisErrorT avd_ctcstype_config_get(cons
                if (!is_config_valid(&dn, attributes, NULL))
                        goto done2;
 
-               if ((ctcstype = avd_ctcstype_get(&dn)) == NULL ) {
+               if ((ctcstype = ctcstype_db->find(&dn)) == NULL ) {
                        if ((ctcstype = ctcstype_create(&dn, attributes)) == 
NULL)
                                goto done2;
 
@@ -199,8 +179,11 @@ static void ctcstype_ccb_apply_cb(CcbUti
                ctcstype_db_add(ctcstype);
                break;
        case CCBUTIL_DELETE:
-               ctcstype = avd_ctcstype_get(&opdata->objectName);
-               ctcstype_delete(ctcstype);
+               ctcstype = ctcstype_db->find(&opdata->objectName);
+               if (ctcstype != NULL) {
+                       ctcstype_db->erase(ctcstype);
+                       delete ctcstype;
+               }
                break;
        default:
                osafassert(0);
@@ -212,10 +195,8 @@ static void ctcstype_ccb_apply_cb(CcbUti
 
 void avd_ctcstype_constructor(void)
 {
-       NCS_PATRICIA_PARAMS patricia_params;
+       ctcstype_db = new AmfDb<AVD_CTCS_TYPE>;
 
-       patricia_params.key_size = sizeof(SaNameT);
-       osafassert(ncs_patricia_tree_init(&ctcstype_db, &patricia_params) == 
NCSCC_RC_SUCCESS);
        avd_class_impl_set("SaAmfCtCsType", NULL, NULL,
                ctcstype_ccb_completed_cb, ctcstype_ccb_apply_cb);
 }
diff --git a/osaf/services/saf/amf/amfd/include/comp.h 
b/osaf/services/saf/amf/amfd/include/comp.h
--- a/osaf/services/saf/amf/amfd/include/comp.h
+++ b/osaf/services/saf/amf/amfd/include/comp.h
@@ -39,6 +39,7 @@
 #include <ncspatricia.h>
 #include <amf_d2nmsg.h>
 #include <cb.h>
+#include "db_template.h"
 
 class AVD_SU;
 
@@ -165,7 +166,6 @@ typedef struct avd_comp_cs_type_tag {
 
 /* AMF Class SaAmfCtCsType */
 typedef struct {
-       NCS_PATRICIA_NODE tree_node;    /* name is key */
        SaNameT name;
        SaAmfCompCapabilityModelT saAmfCtCompCapability;
        SaUint32T saAmfCtDefNumMaxActiveCSIs;
@@ -173,6 +173,8 @@ typedef struct {
        AVD_COMP_TYPE *comptype;
 } AVD_CTCS_TYPE;
 
+extern AmfDb<AVD_CTCS_TYPE> *ctcstype_db;
+
 extern AVD_COMP_GLOBALATTR avd_comp_global_attrs;
 
 /**
@@ -224,7 +226,6 @@ extern SaAisErrorT avd_compglobalattrs_c
 extern void avd_compglobalattrs_constructor(void);
 
 extern SaAisErrorT avd_ctcstype_config_get(const SaNameT *comp_type_dn, 
AVD_COMP_TYPE *comp_type);
-extern AVD_CTCS_TYPE *avd_ctcstype_get(const SaNameT *dn);
 extern void avd_ctcstype_constructor(void);
 
 extern AVD_COMPCS_TYPE *avd_compcstype_new(const SaNameT *dn);
diff --git a/osaf/services/saf/amf/amfd/util.cc 
b/osaf/services/saf/amf/amfd/util.cc
--- a/osaf/services/saf/amf/amfd/util.cc
+++ b/osaf/services/saf/amf/amfd/util.cc
@@ -661,7 +661,7 @@ static SaAmfCompCapabilityModelT get_com
        SaNameT dn;
        avsv_create_association_class_dn(&csi->cstype->name,
                &comp->comp_type->name, "safSupportedCsType", &dn);
-       AVD_CTCS_TYPE *ctcs_type = avd_ctcstype_get(&dn);
+       AVD_CTCS_TYPE *ctcs_type = ctcstype_db->find(&dn);
        osafassert(ctcs_type);
        return ctcs_type->saAmfCtCompCapability;
 }

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