osaf/services/saf/amf/amfd/comp.cc | 11 ++++++-----
osaf/services/saf/amf/amfd/include/su.h | 8 +++++---
osaf/services/saf/amf/amfd/su.cc | 6 ++----
3 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/osaf/services/saf/amf/amfd/comp.cc
b/osaf/services/saf/amf/amfd/comp.cc
--- a/osaf/services/saf/amf/amfd/comp.cc
+++ b/osaf/services/saf/amf/amfd/comp.cc
@@ -188,8 +188,9 @@ AVD_COMP *avd_comp_getnext(const SaNameT
void avd_comp_delete(AVD_COMP *comp)
{
+ AVD_SU *su = comp->su;
m_AVSV_SEND_CKPT_UPDT_ASYNC_RMV(avd_cb, comp,
AVSV_CKPT_AVD_COMP_CONFIG);
- avd_su_remove_comp(comp);
+ su->remove_comp(comp);
avd_comptype_remove_comp(comp);
(void)ncs_patricia_tree_del(&comp_db, &comp->tree_node);
delete comp;
@@ -219,7 +220,7 @@ static void comp_add_to_model(AVD_COMP *
comp->comp_type = avd_comptype_get(&comp->saAmfCompType);
osafassert(comp->comp_type);
avd_comptype_add_comp(comp);
- avd_su_add_comp(comp);
+ su->add_comp(comp);
/* check if the
* corresponding node is UP send the component information
@@ -238,7 +239,7 @@ static void comp_add_to_model(AVD_COMP *
} else {
/* This is not a valid external component. External SU
has
been assigned a cluster component. */
- avd_su_remove_comp(comp);
+ su->remove_comp(comp);
LOG_ER("Not A Valid External Component: Category
'%u'configured",
comp->comp_info.category);
return;
@@ -1199,9 +1200,9 @@ static void comp_ccb_apply_modify_hdlr(s
comp->comp_info.inst_level,
*((SaUint32T *)value), comp->comp_info.name.value);
comp->comp_info.inst_level = *((SaUint32T *)value);
- avd_su_remove_comp(comp);
+ su->remove_comp(comp);
comp->su = su;
- avd_su_add_comp(comp);
+ su->add_comp(comp);
} else if (!strcmp(attribute->attrName,
"saAmfCompNumMaxInstantiateWithoutDelay")) {
diff --git a/osaf/services/saf/amf/amfd/include/su.h
b/osaf/services/saf/amf/amfd/include/su.h
--- a/osaf/services/saf/amf/amfd/include/su.h
+++ b/osaf/services/saf/amf/amfd/include/su.h
@@ -82,12 +82,17 @@ class AVD_SU {
struct avd_sg_tag *sg_of_su; /* the service group of this SU */
struct avd_avnd_tag *su_on_node; /* the node on which this SU
resides */
struct avd_su_si_rel_tag *list_of_susi; /* the list of su si
relationship elements */
+
+ // TODO: use some container for the comp list
struct avd_comp_tag *list_of_comp; /* the list of components in
this SU */
+
AVD_SU *sg_list_su_next; /* the next SU in the SG */
AVD_SU *avnd_list_su_next; /* the next SU in the AvND */
struct avd_sutype *su_type;
AVD_SU *su_list_su_type_next;
+ void add_comp(struct avd_comp_tag *comp);
+ void remove_comp(struct avd_comp_tag *comp);
void set_admin_state(SaAmfAdminStateT admin_state);
void set_pres_state(SaAmfPresenceStateT state);
void set_readiness_state(SaAmfReadinessStateT readiness_state);
@@ -148,9 +153,6 @@ extern AVD_SU *avd_su_new(const SaNameT
*/
extern void avd_su_delete(AVD_SU *su);
-extern void avd_su_remove_comp(struct avd_comp_tag *comp);
-extern void avd_su_add_comp(struct avd_comp_tag *comp);
-
/**
* Get SUs from IMM and create internal objects
*
diff --git a/osaf/services/saf/amf/amfd/su.cc b/osaf/services/saf/amf/amfd/su.cc
--- a/osaf/services/saf/amf/amfd/su.cc
+++ b/osaf/services/saf/amf/amfd/su.cc
@@ -123,8 +123,7 @@ uint32_t avd_su_get_current_no_of_assign
return curr_assignment_cnt;
}
-void avd_su_remove_comp(AVD_COMP *comp)
-{
+void AVD_SU::remove_comp(AVD_COMP *comp) {
AVD_COMP *i_comp = NULL;
AVD_COMP *prev_comp = NULL;
AVD_SU *su_ref = comp->su;
@@ -159,8 +158,7 @@ void avd_su_remove_comp(AVD_COMP *comp)
}
}
-void avd_su_add_comp(AVD_COMP *comp)
-{
+void AVD_SU::add_comp(AVD_COMP *comp) {
AVD_COMP *i_comp = comp->su->list_of_comp;
AVD_COMP *prev_comp = NULL;
bool found_pos= false;
------------------------------------------------------------------------------
Start Your Social Network Today - Download eXo Platform
Build your Enterprise Intranet with eXo Platform Software
Java Based Open Source Intranet - Social, Extensible, Cloud Ready
Get Started Now And Turn Your Intranet Into A Collaboration Platform
http://p.sf.net/sfu/ExoPlatform
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel