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
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel