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