osaf/services/saf/amf/amfd/csi.cc | 11 +++-- osaf/services/saf/amf/amfd/include/csi.h | 56 +++++++++++++++++------------- osaf/services/saf/amf/amfd/include/msg.h | 4 +- osaf/services/saf/amf/amfd/include/pg.h | 8 ++-- osaf/services/saf/amf/amfd/include/si.h | 10 ++-- osaf/services/saf/amf/amfd/include/util.h | 4 +- osaf/services/saf/amf/amfd/si.cc | 8 ++-- 7 files changed, 56 insertions(+), 45 deletions(-)
diff --git a/osaf/services/saf/amf/amfd/csi.cc b/osaf/services/saf/amf/amfd/csi.cc --- a/osaf/services/saf/amf/amfd/csi.cc +++ b/osaf/services/saf/amf/amfd/csi.cc @@ -270,6 +270,11 @@ static void csi_remove_csidep(AVD_CSI *c delete curr; } +// +AVD_CSI::AVD_CSI(const SaNameT* csi_name) { + memcpy(&name.value, csi_name->value, csi_name->length); + name.length = csi_name->length; +} /** * @brief creates new csi and adds csi node to the csi_db * @@ -283,10 +288,8 @@ AVD_CSI *csi_create(const SaNameT *csi_n TRACE_ENTER2("'%s'", csi_name->value); - csi = new AVD_CSI(); - memcpy(csi->name.value, csi_name->value, csi_name->length); - csi->name.length = csi_name->length; - + csi = new AVD_CSI(csi_name); + if (csi_db->insert(Amf::to_string(&csi->name), csi) != NCSCC_RC_SUCCESS) osafassert(0); diff --git a/osaf/services/saf/amf/amfd/include/csi.h b/osaf/services/saf/amf/amfd/include/csi.h --- a/osaf/services/saf/amf/amfd/include/csi.h +++ b/osaf/services/saf/amf/amfd/include/csi.h @@ -51,38 +51,46 @@ typedef struct avd_csi_deps_tag { class AVD_CS_TYPE; -/* Availability directors Component service in.stance structure(AVD_CSI): +/* Availability directors Component service instance class(AVD_CSI): * This data structure lives in the AvD and reflects data points * associated with the CSI on the AvD. */ -typedef struct avd_csi_tag { +class AVD_CSI { + public: + explicit AVD_CSI(const SaNameT* csi_name); - SaNameT name; - SaNameT saAmfCSType; - AVD_CSI_DEPS *saAmfCSIDependencies; /* list of all CSI dependencies for this CSI */ - /* Rank is calculated based on CSI dependency. If no dependency configured then rank will be 1. - Else rank will one more than rank of saAmfCSIDependencies. */ - uint32_t rank; /* The rank of the CSI in the SI + SaNameT name {}; + SaNameT saAmfCSType {}; + AVD_CSI_DEPS *saAmfCSIDependencies {}; /* list of all CSI dependencies for this CSI */ + /* Rank is calculated based on CSI dependency. If no dependency configured then rank will be 1. + Else rank will one more than rank of saAmfCSIDependencies. */ + uint32_t rank {}; /* The rank of the CSI in the SI * Checkpointing - Sent as a one time update. */ - AVD_SI *si; /* SI encompassing this csi */ + AVD_SI *si {}; /* SI encompassing this csi */ - uint32_t num_attributes; /* The number of attributes in the list. */ - AVD_CSI_ATTR *list_attributes; /* list of all the attributes of this CSI. */ + uint32_t num_attributes {}; /* The number of attributes in the list. */ + AVD_CSI_ATTR *list_attributes {}; /* list of all the attributes of this CSI. */ - NCS_DB_LINK_LIST pg_node_list; /* list of nodes on which pg is + NCS_DB_LINK_LIST pg_node_list {}; /* list of nodes on which pg is * tracked for this csi */ - struct avd_csi_tag *si_list_of_csi_next; /* the next CSI in the list of component service - * instances in the Service instance */ - struct avd_comp_csi_rel_tag *list_compcsi; /* The list of compcsi relationship - * wrt to this CSI. */ - uint32_t compcsi_cnt; /* no of comp-csi rels */ - struct avd_csi_tag *csi_list_cs_type_next; - AVD_CS_TYPE *cstype; - bool assign_flag; /* Flag used while assigning. to mark this csi has been assigned a Comp - from * current SI being assigned */ -} AVD_CSI; + AVD_CSI *si_list_of_csi_next {}; /* the next CSI in the list of component service + * instances in the Service instance */ + struct avd_comp_csi_rel_tag *list_compcsi {}; /* The list of compcsi relationship + * wrt to this CSI. */ + uint32_t compcsi_cnt {}; /* no of comp-csi rels */ + AVD_CSI *csi_list_cs_type_next {}; + AVD_CS_TYPE *cstype {}; + bool assign_flag {}; /* Flag used while assigning. to mark this csi has been assigned a Comp + from * current SI being assigned */ + private: + AVD_CSI(); + // disallow copy and assign + AVD_CSI(const AVD_CSI&); + void operator=(const AVD_CSI&); +}; + extern AmfDb<std::string, AVD_CSI> *csi_db; class AVD_CS_TYPE { @@ -167,8 +175,8 @@ extern void avd_cstype_constructor(void) extern SaAisErrorT avd_csiattr_config_get(const SaNameT *csi_name, AVD_CSI *csi); extern void avd_csiattr_constructor(void); extern void avd_compcsi_from_csi_and_susi_delete(struct avd_su_si_rel_tag *susi, struct avd_comp_csi_rel_tag *comp_csi, bool ckpt); -extern void avd_csi_delete(struct avd_csi_tag *csi); -extern void csi_cmplt_delete(struct avd_csi_tag *csi, bool ckpt); +extern void avd_csi_delete(AVD_CSI *csi); +extern void csi_cmplt_delete(AVD_CSI *csi, bool ckpt); extern AVD_CSI *csi_create(const SaNameT *csi_name); extern bool csi_assignment_validate(AVD_SG *sg); extern SaAisErrorT csi_assign_hdlr(AVD_CSI *csi); diff --git a/osaf/services/saf/amf/amfd/include/msg.h b/osaf/services/saf/amf/amfd/include/msg.h --- a/osaf/services/saf/amf/amfd/include/msg.h +++ b/osaf/services/saf/amf/amfd/include/msg.h @@ -74,7 +74,7 @@ class AVD_SU; struct avd_su_si_rel_tag; class AVD_COMP; struct avd_comp_csi_rel_tag; -struct avd_csi_tag; +class AVD_CSI; uint32_t avd_d2n_msg_dequeue(struct cl_cb_tag *cb); uint32_t avd_d2n_msg_snd(struct cl_cb_tag *cb, struct avd_avnd_tag *nd_node, AVD_DND_MSG *snd_msg); @@ -99,7 +99,7 @@ uint32_t avd_snd_susi_msg(struct cl_cb_t AVSV_SUSI_ACT actn, SaBoolT single_csi, struct avd_comp_csi_rel_tag*); uint32_t avd_snd_set_leds_msg(struct cl_cb_tag *cb, struct avd_avnd_tag *avnd); -uint32_t avd_snd_pg_resp_msg(struct cl_cb_tag *, struct avd_avnd_tag *, struct avd_csi_tag *, +uint32_t avd_snd_pg_resp_msg(struct cl_cb_tag *, struct avd_avnd_tag *, AVD_CSI *, AVSV_N2D_PG_TRACK_ACT_MSG_INFO *); uint32_t avd_snd_pg_upd_msg(struct cl_cb_tag *, struct avd_avnd_tag *, struct avd_comp_csi_rel_tag *, SaAmfProtectionGroupChangesT, SaNameT *); diff --git a/osaf/services/saf/amf/amfd/include/pg.h b/osaf/services/saf/amf/amfd/include/pg.h --- a/osaf/services/saf/amf/amfd/include/pg.h +++ b/osaf/services/saf/amf/amfd/include/pg.h @@ -46,7 +46,7 @@ typedef struct avd_pg_csi_node { typedef struct avd_pg_node_csi { NCS_DB_LINK_LIST_NODE node_dll_node; /* avnd dll node (key is csi ptr) */ - struct avd_csi_tag *csi; /* ptr to the csi */ + AVD_CSI *csi; /* ptr to the csi */ } AVD_PG_NODE_CSI; void avd_pg_trk_act_evh(AVD_CL_CB *, struct avd_evt_tag *); @@ -54,9 +54,9 @@ void avd_pg_trk_act_evh(AVD_CL_CB *, str uint32_t avd_pg_susi_chg_prc(AVD_CL_CB *, AVD_SU_SI_REL *); uint32_t avd_pg_compcsi_chg_prc(AVD_CL_CB *, struct avd_comp_csi_rel_tag *, bool); -uint32_t avd_pg_csi_node_add(AVD_CL_CB *, struct avd_csi_tag *, AVD_AVND *); -void avd_pg_csi_node_del(AVD_CL_CB *, struct avd_csi_tag *, AVD_AVND *); -void avd_pg_csi_node_del_all(AVD_CL_CB *, struct avd_csi_tag *); +uint32_t avd_pg_csi_node_add(AVD_CL_CB *, AVD_CSI *, AVD_AVND *); +void avd_pg_csi_node_del(AVD_CL_CB *, AVD_CSI *, AVD_AVND *); +void avd_pg_csi_node_del_all(AVD_CL_CB *, AVD_CSI *); void avd_pg_node_csi_del_all(AVD_CL_CB *, AVD_AVND *); #endif /* !AVD_PG_H */ 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 @@ -92,7 +92,7 @@ public: */ AVD_SG *sg_of_si; /* the service group of this SI */ - struct avd_csi_tag *list_of_csi; /* The list of CSIs in the SI */ + AVD_CSI *list_of_csi; /* The list of CSIs in the SI */ AVD_SI *sg_list_of_si_next; /* next SI in the SG list of SIs */ struct avd_su_si_rel_tag *list_of_sisu; /* the list of su si relationship elements */ AVD_SI_DEP_STATE si_dep_state; /* SI-SI dep state of this SI */ @@ -131,15 +131,15 @@ public: uint32_t pref_standby_assignments() const; uint32_t curr_standby_assignments() const; - void add_csi(struct avd_csi_tag* csi); - void remove_csi(struct avd_csi_tag *csi); + void add_csi(AVD_CSI* csi); + void remove_csi(AVD_CSI *csi); void delete_assignments(AVD_CL_CB *cb); void delete_csis(); void si_add_to_model(); - void arrange_dep_csi(struct avd_csi_tag* csi); - void add_csi_db(struct avd_csi_tag* csi); + void arrange_dep_csi(AVD_CSI* csi); + void add_csi_db(AVD_CSI* csi); bool is_sirank_valid(uint32_t newSiRank) const; void update_sirank(uint32_t newSiRank); private: diff --git a/osaf/services/saf/amf/amfd/include/util.h b/osaf/services/saf/amf/amfd/include/util.h --- a/osaf/services/saf/amf/amfd/include/util.h +++ b/osaf/services/saf/amf/amfd/include/util.h @@ -94,7 +94,7 @@ struct avd_hlt_tag; struct avd_su_si_rel_tag; class AVD_COMP; struct avd_comp_csi_rel_tag; -struct avd_csi_tag; +class AVD_CSI; int get_child_dn_from_ass_dn(const SaNameT *ass_dn, SaNameT *child_dn); void avd_d2n_reboot_snd(struct avd_avnd_tag *node); @@ -121,7 +121,7 @@ uint32_t avd_snd_susi_msg(struct cl_cb_t AVSV_SUSI_ACT actn, bool single_csi, struct avd_comp_csi_rel_tag*); uint32_t avd_snd_set_leds_msg(struct cl_cb_tag *cb, struct avd_avnd_tag *avnd); -uint32_t avd_snd_pg_resp_msg(struct cl_cb_tag *, struct avd_avnd_tag *, struct avd_csi_tag *, +uint32_t avd_snd_pg_resp_msg(struct cl_cb_tag *, struct avd_avnd_tag *, AVD_CSI *, AVSV_N2D_PG_TRACK_ACT_MSG_INFO *); uint32_t avd_snd_pg_upd_msg(struct cl_cb_tag *, struct avd_avnd_tag *, struct avd_comp_csi_rel_tag *, SaAmfProtectionGroupChangesT, SaNameT *); 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 @@ -36,7 +36,7 @@ AmfDb<std::string, AVD_SI> *si_db = NULL * @param name * @param csi */ -static void osafassert_if_loops_in_csideps(SaNameT *csi_name, struct avd_csi_tag* csi) +static void osafassert_if_loops_in_csideps(SaNameT *csi_name, AVD_CSI* csi) { AVD_CSI *temp_csi = NULL; AVD_CSI_DEPS *csi_dep_ptr; @@ -68,7 +68,7 @@ static void osafassert_if_loops_in_cside TRACE_LEAVE(); } -void AVD_SI::arrange_dep_csi(struct avd_csi_tag* csi) +void AVD_SI::arrange_dep_csi(AVD_CSI* csi) { AVD_CSI *temp_csi = NULL; @@ -110,7 +110,7 @@ void AVD_SI::arrange_dep_csi(struct avd_ return; } -void AVD_SI::add_csi(struct avd_csi_tag* avd_csi) +void AVD_SI::add_csi(AVD_CSI* avd_csi) { AVD_CSI *temp_csi = NULL; bool found = false; @@ -158,7 +158,7 @@ add_csi: return; } -void AVD_SI::add_csi_db(struct avd_csi_tag* csi) +void AVD_SI::add_csi_db(AVD_CSI* csi) { TRACE_ENTER2("%s", csi->name.value); ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel