osaf/services/saf/amf/amfd/include/si.h | 2 +-
osaf/services/saf/amf/amfd/si.cc | 4 ++--
osaf/services/saf/amf/amfd/svctype.cc | 27 ++++++---------------------
3 files changed, 9 insertions(+), 24 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
@@ -132,6 +132,7 @@ typedef struct {
extern AmfDb<AVD_SI> *si_db;
extern AmfDb<AVD_SVC_TYPE_CS_TYPE> *svctypecstypes_db;
+extern AmfDb<AVD_SVC_TYPE> *svctype_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
@@ -153,7 +154,6 @@ extern AVD_SI *avd_si_get(const SaNameT
extern SaAisErrorT avd_si_config_get(struct avd_app_tag *app);
extern void avd_si_constructor(void);
-extern AVD_SVC_TYPE *avd_svctype_get(const SaNameT *dn);
extern SaAisErrorT avd_svctype_config_get(void);
extern void avd_svctype_add_si(AVD_SI *si);
extern void avd_svctype_remove_si(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
@@ -469,7 +469,7 @@ static void si_add_to_model(AVD_SI *si)
avd_si_db_add(si);
- si->svc_type = avd_svctype_get(&si->saAmfSvcType);
+ si->svc_type = svctype_db->find(&si->saAmfSvcType);
if (si->saAmfSIProtectedbySG.length > 0)
si->sg_of_si = avd_sg_get(&si->saAmfSIProtectedbySG);
@@ -511,7 +511,7 @@ static int is_config_valid(const SaNameT
rc = immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfSvcType"),
attributes, 0, &aname);
osafassert(rc == SA_AIS_OK);
- if (avd_svctype_get(&aname) == NULL) {
+ if (svctype_db->find(&aname) == NULL) {
/* SVC type does not exist in current model, check CCB if
passed as param */
if (opdata == NULL) {
report_ccb_validation_error(opdata, "'%s' does not
exist in model", aname.value);
diff --git a/osaf/services/saf/amf/amfd/svctype.cc
b/osaf/services/saf/amf/amfd/svctype.cc
--- a/osaf/services/saf/amf/amfd/svctype.cc
+++ b/osaf/services/saf/amf/amfd/svctype.cc
@@ -28,7 +28,7 @@
#include <csi.h>
#include <proc.h>
-static NCS_PATRICIA_TREE svctype_db;
+AmfDb<AVD_SVC_TYPE> *svctype_db = NULL;
//
// TODO(HANO) Temporary use this function instead of strdup which uses malloc.
@@ -43,24 +43,14 @@ static char *StrDup(const char *s)
static void svctype_db_add(AVD_SVC_TYPE *svct)
{
- unsigned int rc = ncs_patricia_tree_add(&svctype_db, &svct->tree_node);
+ unsigned int rc = svctype_db->insert(svct);
osafassert (rc == NCSCC_RC_SUCCESS);
}
-AVD_SVC_TYPE *avd_svctype_get(const SaNameT *dn)
-{
- SaNameT tmp = {0};
-
- tmp.length = dn->length;
- memcpy(tmp.value, dn->value, tmp.length);
-
- return (AVD_SVC_TYPE *)ncs_patricia_tree_get(&svctype_db, (uint8_t
*)&tmp);
-}
static void svctype_delete(AVD_SVC_TYPE *svc_type)
{
- unsigned int rc = ncs_patricia_tree_del(&svctype_db,
&svc_type->tree_node);
- osafassert(rc == NCSCC_RC_SUCCESS);
+ svctype_db->erase(svc_type);
if (svc_type->saAmfSvcDefActiveWeight != NULL) {
unsigned int i = 0;
@@ -94,7 +84,6 @@ static AVD_SVC_TYPE *svctype_create(cons
memcpy(svct->name.value, dn->value, dn->length);
svct->name.length = dn->length;
- svct->tree_node.key_info = (uint8_t *)&svct->name;
svct->saAmfSvcDefActiveWeight = NULL;
svct->saAmfSvcDefStandbyWeight = NULL;
@@ -159,7 +148,7 @@ static SaAisErrorT svctype_ccb_completed
report_ccb_validation_error(opdata, "Modification of
SaAmfSvcType not supported");
break;
case CCBUTIL_DELETE:
- svc_type = avd_svctype_get(&opdata->objectName);
+ svc_type = svctype_db->find(&opdata->objectName);
if (NULL != svc_type->list_of_si) {
/* check whether there exists a delete operation for
* each of the SI in the svc_type list in the current
CCB
@@ -250,7 +239,7 @@ SaAisErrorT avd_svctype_config_get(void)
if (!is_config_valid(&dn, attributes, NULL))
goto done2;
- if ((svc_type = avd_svctype_get(&dn))==NULL) {
+ if ((svc_type = svctype_db->find(&dn)) == NULL) {
if ((svc_type = svctype_create(&dn, attributes)) ==
NULL)
goto done2;
@@ -308,11 +297,7 @@ void avd_svctype_remove_si(AVD_SI *si)
void avd_svctype_constructor(void)
{
- NCS_PATRICIA_PARAMS patricia_params;
-
- patricia_params.key_size = sizeof(SaNameT);
-
- osafassert(ncs_patricia_tree_init(&svctype_db, &patricia_params) ==
NCSCC_RC_SUCCESS);
+ svctype_db = new AmfDb<AVD_SVC_TYPE>;
avd_class_impl_set("SaAmfSvcType", NULL, NULL, svctype_ccb_completed_cb,
svctype_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