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 Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel