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

Reply via email to