osaf/services/saf/amf/amfd/include/cb.h | 6 +-
osaf/services/saf/amf/amfd/include/msg.h | 26 +++---
osaf/services/saf/amf/amfd/include/node.h | 102 ++++++++++++++++-------------
osaf/services/saf/amf/amfd/include/sg.h | 12 +-
osaf/services/saf/amf/amfd/include/su.h | 4 +-
osaf/services/saf/amf/amfd/include/util.h | 32 ++++----
osaf/services/saf/amf/amfd/node.cc | 58 +++++++++++-----
osaf/services/saf/amf/amfd/su.cc | 6 +-
8 files changed, 136 insertions(+), 110 deletions(-)
diff --git a/osaf/services/saf/amf/amfd/include/cb.h
b/osaf/services/saf/amf/amfd/include/cb.h
--- a/osaf/services/saf/amf/amfd/include/cb.h
+++ b/osaf/services/saf/amf/amfd/include/cb.h
@@ -44,7 +44,7 @@
#include <ckpt.h>
#include <timer.h>
-struct avd_avnd_tag;
+class AVD_AVND;
typedef enum {
AVD_INIT_BGN = 1,
@@ -84,8 +84,8 @@ typedef struct avsv_nd_msg_list {
node_state, rcv_msg_id, snd_msg_id of hosting node, so we also have a
pointer to local AVD_AVND data structure. */
typedef struct avd_ext_comp_info {
- struct avd_avnd_tag *local_avnd_node;
- struct avd_avnd_tag *ext_comp_hlt_check;
+ AVD_AVND *local_avnd_node;
+ AVD_AVND *ext_comp_hlt_check;
} AVD_EXT_COMP_INFO;
/*
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
@@ -69,7 +69,7 @@ typedef struct avd_d2d_msg {
} AVD_D2D_MSG;
struct cl_cb_tag;
-struct avd_avnd_tag;
+class AVD_AVND;
class AVD_SU;
struct avd_su_si_rel_tag;
class AVD_COMP;
@@ -77,7 +77,7 @@ struct avd_comp_csi_rel_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);
+uint32_t avd_d2n_msg_snd(struct cl_cb_tag *cb, AVD_AVND *nd_node, AVD_DND_MSG
*snd_msg);
uint32_t avd_n2d_msg_rcv(AVD_DND_MSG *rcv_msg, NODE_ID node_id, uint16_t
msg_fmt_ver);
uint32_t avd_mds_cpy(MDS_CALLBACK_COPY_INFO *cpy_info);
uint32_t avd_mds_enc(MDS_CALLBACK_ENC_INFO *enc_info);
@@ -86,25 +86,25 @@ uint32_t avd_mds_dec(MDS_CALLBACK_DEC_IN
uint32_t avd_mds_dec_flat(MDS_CALLBACK_DEC_FLAT_INFO *dec_info);
uint32_t avd_d2n_msg_bcast(struct cl_cb_tag *cb, AVD_DND_MSG *bcast_msg);
-uint32_t avd_snd_node_ack_msg(struct cl_cb_tag *cb, struct avd_avnd_tag *avnd,
uint32_t msg_id);
-uint32_t avd_snd_node_data_verify_msg(struct cl_cb_tag *cb, struct
avd_avnd_tag *avnd);
-uint32_t avd_snd_node_info_on_fover_msg(struct cl_cb_tag *cb, struct
avd_avnd_tag *avnd);
-uint32_t avd_snd_node_update_msg(struct cl_cb_tag *cb, struct avd_avnd_tag
*avnd);
-uint32_t avd_snd_node_up_msg(struct cl_cb_tag *cb, struct avd_avnd_tag *avnd,
uint32_t msg_id_ack);
+uint32_t avd_snd_node_ack_msg(struct cl_cb_tag *cb, AVD_AVND *avnd, uint32_t
msg_id);
+uint32_t avd_snd_node_data_verify_msg(struct cl_cb_tag *cb, AVD_AVND *avnd);
+uint32_t avd_snd_node_info_on_fover_msg(struct cl_cb_tag *cb, AVD_AVND *avnd);
+uint32_t avd_snd_node_update_msg(struct cl_cb_tag *cb, AVD_AVND *avnd);
+uint32_t avd_snd_node_up_msg(struct cl_cb_tag *cb, AVD_AVND *avnd, uint32_t
msg_id_ack);
uint32_t avd_snd_presence_msg(struct cl_cb_tag *cb, AVD_SU *su, bool
term_state);
-uint32_t avd_snd_oper_state_msg(struct cl_cb_tag *cb, struct avd_avnd_tag
*avnd, uint32_t msg_id_ack);
-uint32_t avd_snd_op_req_msg(struct cl_cb_tag *cb, struct avd_avnd_tag *avnd,
AVSV_PARAM_INFO *param_info);
+uint32_t avd_snd_oper_state_msg(struct cl_cb_tag *cb, AVD_AVND *avnd, uint32_t
msg_id_ack);
+uint32_t avd_snd_op_req_msg(struct cl_cb_tag *cb, AVD_AVND *avnd,
AVSV_PARAM_INFO *param_info);
uint32_t avd_snd_su_msg(struct cl_cb_tag *cb, AVD_SU *su);
uint32_t avd_snd_susi_msg(struct cl_cb_tag *cb, AVD_SU *su, struct
avd_su_si_rel_tag *susi,
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_set_leds_msg(struct cl_cb_tag *cb, AVD_AVND *avnd);
-uint32_t avd_snd_pg_resp_msg(struct cl_cb_tag *, struct avd_avnd_tag *,
AVD_CSI *,
+uint32_t avd_snd_pg_resp_msg(struct cl_cb_tag *, AVD_AVND *, 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 *,
+uint32_t avd_snd_pg_upd_msg(struct cl_cb_tag *, AVD_AVND *, struct
avd_comp_csi_rel_tag *,
SaAmfProtectionGroupChangesT, SaNameT *);
uint32_t avd_snd_hb_msg(struct cl_cb_tag *);
-uint32_t avd_snd_comp_validation_resp(struct cl_cb_tag *cb, struct
avd_avnd_tag *avnd,
+uint32_t avd_snd_comp_validation_resp(struct cl_cb_tag *cb, AVD_AVND *avnd,
AVD_COMP *comp_ptr, AVD_DND_MSG
*n2d_msg);
void avsv_d2d_msg_free(AVD_D2D_MSG *);
void avd_mds_d_enc(MDS_CALLBACK_ENC_INFO *);
diff --git a/osaf/services/saf/amf/amfd/include/node.h
b/osaf/services/saf/amf/amfd/include/node.h
--- a/osaf/services/saf/amf/amfd/include/node.h
+++ b/osaf/services/saf/amf/amfd/include/node.h
@@ -72,10 +72,13 @@ class AVD_AMF_NG;
* support the cluster membership service.
*/
-typedef struct avd_avnd_tag {
- SaNameT name; /* DN */
- char *node_name; /* RDN value, normally the short host name */
- SaClmClusterNodeT_4 node_info; /* the node information of the node on
+class AVD_AVND {
+ public:
+ AVD_AVND();
+ explicit AVD_AVND(const SaNameT* dn);
+ SaNameT name; /* DN */
+ char *node_name; /* RDN value, normally the short host name */
+ SaClmClusterNodeT_4 node_info; /* the node information of the node on
* which this AvND exists. The length
* field of nodeName structure is in
* network order. The nodename is
@@ -83,61 +86,66 @@ typedef struct avd_avnd_tag {
* Checkpointing - Sent as a one time
update.
*/
- MDS_DEST adest; /* the Adest address of this
+ MDS_DEST adest; /* the Adest address of this
* nodes AvND.
* Checkpointing - Sent on node up.
*/
- /************ AMF B.04 **************************************************/
- SaNameT saAmfNodeClmNode;
- char *saAmfNodeCapacity;
- SaTimeT saAmfNodeSuFailOverProb;
- SaUint32T saAmfNodeSuFailoverMax;
- SaBoolT saAmfNodeAutoRepair;
- SaBoolT saAmfNodeFailfastOnTerminationFailure;
- SaBoolT saAmfNodeFailfastOnInstantiationFailure;
- SaAmfAdminStateT saAmfNodeAdminState;
- SaAmfOperationalStateT saAmfNodeOperState;
+ /************ AMF B.04 **************************************************/
+ SaNameT saAmfNodeClmNode;
+ char *saAmfNodeCapacity;
+ SaTimeT saAmfNodeSuFailOverProb;
+ SaUint32T saAmfNodeSuFailoverMax;
+ SaBoolT saAmfNodeAutoRepair;
+ SaBoolT saAmfNodeFailfastOnTerminationFailure;
+ SaBoolT saAmfNodeFailfastOnInstantiationFailure;
+ SaAmfAdminStateT saAmfNodeAdminState;
+ SaAmfOperationalStateT saAmfNodeOperState;
- AVD_ADMIN_OPER_CBK admin_node_pend_cbk; /*to store any pending admin op
- callbacks on this node */
- uint32_t su_cnt_admin_oper; /* count to keep track SUs on this node
- undergoing node admin op */
+ AVD_ADMIN_OPER_CBK admin_node_pend_cbk; /*to store any pending admin op
+ callbacks on this node */
+ uint32_t su_cnt_admin_oper; /* count to keep track SUs on this node
+ undergoing node admin op */
- /************ AMF B.04 **************************************************/
+ /************ AMF B.04 **************************************************/
- AVD_AVND_STATE node_state; /* F.S.M state of the AVND
- * Checkpointing - Sent independent
update
- */
+ AVD_AVND_STATE node_state; /* F.S.M state of the AVND
+ * Checkpointing - Sent independent update
+ */
- AVD_SU *list_of_ncs_su; /* the list of NCS service units on
- * this node.
- */
- AVD_SU *list_of_su; /* the list of service units on this
- * node that are application specific.
- */
- NCS_DB_LINK_LIST pg_csi_list; /* list of csis for which pg is tracked
+ AVD_SU *list_of_ncs_su; /* the list of NCS service units on
+ * this node.
+ */
+ AVD_SU *list_of_su; /* the list of service units on this
+ * node that are application specific.
+ */
+ NCS_DB_LINK_LIST pg_csi_list; /* list of csis for which pg is tracked
* from this node */
- AVSV_AVND_CARD type; /* field that describes if this node is sytem
- * controller or not.
- * Checkpointing - Sent as a one time update.
- */
+ AVSV_AVND_CARD type; /* field that describes if this node is sytem
+ * controller or not.
+ * Checkpointing - Sent as a one time update.
+ */
- uint32_t rcv_msg_id; /* The receive message id counter
- * Checkpointing - Sent independent update
- */
+ uint32_t rcv_msg_id; /* The receive message id counter
+ * Checkpointing - Sent independent update
+ */
- uint32_t snd_msg_id; /* The send message id counter
- * Checkpointing - Sent independent update
- */
+ uint32_t snd_msg_id; /* The send message id counter
+ * Checkpointing - Sent independent update
+ */
- struct avd_avnd_tag *cluster_list_node_next;
- struct avd_cluster_tag *cluster;
- SaInvocationT clm_pend_inv; /* pending response for any clm track cb */
- bool clm_change_start_preceded; /* to indicate there was CLM start cbk
before CLM completed cb. */
- bool recvr_fail_sw; /* to indicate there was node reboot because of
node failover/switchover.*/
- AVD_AMF_NG *admin_ng; /* points to the nodegroup on which admin
operation is going on.*/
-} AVD_AVND;
+ AVD_AVND *cluster_list_node_next;
+ struct avd_cluster_tag *cluster;
+ SaInvocationT clm_pend_inv; /* pending response for any clm track cb */
+ bool clm_change_start_preceded; /* to indicate there was CLM start cbk
before CLM completed cb. */
+ bool recvr_fail_sw; /* to indicate there was node reboot because of node
failover/switchover.*/
+ AVD_AMF_NG *admin_ng; /* points to the nodegroup on which admin operation is
going on.*/
+ private:
+ void initialize();
+ // disallow copy and assign
+ AVD_AVND(const AVD_AVND&);
+ void operator=(const AVD_AVND&);
+};
bool operator<(const AVD_AVND& lhs, const AVD_AVND& rhs);
diff --git a/osaf/services/saf/amf/amfd/include/sg.h
b/osaf/services/saf/amf/amfd/include/sg.h
--- a/osaf/services/saf/amf/amfd/include/sg.h
+++ b/osaf/services/saf/amf/amfd/include/sg.h
@@ -347,7 +347,7 @@ public:
* @return
*/
virtual uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su,
- struct avd_avnd_tag *avnd) = 0;
+ AVD_AVND *avnd) = 0;
/**
* Handle successful SUSI assignment
@@ -427,7 +427,7 @@ public:
uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
uint32_t su_insvc(AVD_CL_CB *cb, AVD_SU *su);
uint32_t su_fault(AVD_CL_CB *cb, AVD_SU *su);
- uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, struct avd_avnd_tag
*avnd);
+ uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd);
uint32_t susi_success(AVD_CL_CB *cb, AVD_SU *su,
struct avd_su_si_rel_tag *susi, AVSV_SUSI_ACT act,
SaAmfHAStateT state);
uint32_t susi_failed(AVD_CL_CB *cb, AVD_SU *su,
@@ -459,7 +459,7 @@ public:
uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
uint32_t su_insvc(AVD_CL_CB *cb, AVD_SU *su);
uint32_t su_fault(AVD_CL_CB *cb, AVD_SU *su);
- uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, struct avd_avnd_tag
*avnd);
+ uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd);
uint32_t susi_success(AVD_CL_CB *cb, AVD_SU *su,
struct avd_su_si_rel_tag *susi, AVSV_SUSI_ACT act,
SaAmfHAStateT state);
uint32_t susi_failed(AVD_CL_CB *cb, AVD_SU *su,
@@ -482,7 +482,7 @@ public:
uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
uint32_t su_insvc(AVD_CL_CB *cb, AVD_SU *su);
uint32_t su_fault(AVD_CL_CB *cb, AVD_SU *su);
- uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, struct avd_avnd_tag
*avnd);
+ uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd);
uint32_t susi_success(AVD_CL_CB *cb, AVD_SU *su,
struct avd_su_si_rel_tag *susi, AVSV_SUSI_ACT act,
SaAmfHAStateT state);
uint32_t susi_failed(AVD_CL_CB *cb, AVD_SU *su,
@@ -502,7 +502,7 @@ public:
uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
uint32_t su_insvc(AVD_CL_CB *cb, AVD_SU *su);
uint32_t su_fault(AVD_CL_CB *cb, AVD_SU *su);
- uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, struct avd_avnd_tag
*avnd);
+ uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd);
uint32_t susi_success(AVD_CL_CB *cb, AVD_SU *su,
struct avd_su_si_rel_tag *susi, AVSV_SUSI_ACT act,
SaAmfHAStateT state);
uint32_t susi_failed(AVD_CL_CB *cb, AVD_SU *su,
@@ -523,7 +523,7 @@ public:
uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
uint32_t su_insvc(AVD_CL_CB *cb, AVD_SU *su);
uint32_t su_fault(AVD_CL_CB *cb, AVD_SU *su);
- uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, struct avd_avnd_tag
*avnd);
+ uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd);
uint32_t susi_success(AVD_CL_CB *cb, AVD_SU *su,
struct avd_su_si_rel_tag *susi, AVSV_SUSI_ACT act,
SaAmfHAStateT state);
uint32_t susi_failed(AVD_CL_CB *cb, AVD_SU *su,
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
@@ -86,7 +86,7 @@ class AVD_SU {
int su_act_state; // not used, kept for EDU, remove later
AVD_SG *sg_of_su; /* the service group of this SU */
- struct avd_avnd_tag *su_on_node; /* the node on which this SU
resides */
+ AVD_AVND *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
@@ -118,7 +118,7 @@ class AVD_SU {
void set_term_state(bool state);
void remove_from_model();
void set_su_switch(SaToggleState state);
- avd_avnd_tag *get_node_ptr(void);
+ AVD_AVND *get_node_ptr(void);
bool is_in_service(void);
bool is_instantiable(void);
void reset_all_comps_assign_flag();
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
@@ -89,7 +89,7 @@ extern const char *avd_proxy_status_name
extern const char *amf_recovery[];
struct cl_cb_tag;
-struct avd_avnd_tag;
+class AVD_AVND;
struct avd_hlt_tag;
struct avd_su_si_rel_tag;
class AVD_COMP;
@@ -97,36 +97,36 @@ struct avd_comp_csi_rel_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);
+void avd_d2n_reboot_snd(AVD_AVND *node);
bool admin_op_is_valid(SaImmAdminOperationIdT opId, AVSV_AMF_CLASS_ID
class_id);
void amflog(int priority, const char *format, ...);
void d2n_msg_free(AVD_DND_MSG *msg);
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);
+uint32_t avd_d2n_msg_snd(struct cl_cb_tag *cb, AVD_AVND *nd_node, AVD_DND_MSG
*snd_msg);
uint32_t avd_n2d_msg_rcv(AVD_DND_MSG *rcv_msg, NODE_ID node_id, uint16_t
msg_fmt_ver);
uint32_t avd_d2n_msg_bcast(struct cl_cb_tag *cb, AVD_DND_MSG *bcast_msg);
-uint32_t avd_snd_node_ack_msg(struct cl_cb_tag *cb, struct avd_avnd_tag *avnd,
uint32_t msg_id);
-uint32_t avd_snd_node_data_verify_msg(struct cl_cb_tag *cb, struct
avd_avnd_tag *avnd);
-uint32_t avd_snd_node_info_on_fover_msg(struct cl_cb_tag *cb, struct
avd_avnd_tag *avnd);
-uint32_t avd_snd_node_update_msg(struct cl_cb_tag *cb, struct avd_avnd_tag
*avnd);
-uint32_t avd_snd_node_up_msg(struct cl_cb_tag *cb, struct avd_avnd_tag *avnd,
uint32_t msg_id_ack);
+uint32_t avd_snd_node_ack_msg(struct cl_cb_tag *cb, AVD_AVND *avnd, uint32_t
msg_id);
+uint32_t avd_snd_node_data_verify_msg(struct cl_cb_tag *cb, AVD_AVND *avnd);
+uint32_t avd_snd_node_info_on_fover_msg(struct cl_cb_tag *cb, AVD_AVND *avnd);
+uint32_t avd_snd_node_update_msg(struct cl_cb_tag *cb, AVD_AVND *avnd);
+uint32_t avd_snd_node_up_msg(struct cl_cb_tag *cb, AVD_AVND *avnd, uint32_t
msg_id_ack);
uint32_t avd_snd_presence_msg(struct cl_cb_tag *cb, AVD_SU *su, bool
term_state);
-uint32_t avd_snd_oper_state_msg(struct cl_cb_tag *cb, struct avd_avnd_tag
*avnd, uint32_t msg_id_ack);
-uint32_t avd_snd_op_req_msg(struct cl_cb_tag *cb, struct avd_avnd_tag *avnd,
AVSV_PARAM_INFO *param_info);
-uint32_t avd_snd_su_reg_msg(struct cl_cb_tag *cb, struct avd_avnd_tag *avnd,
bool fail_over);
+uint32_t avd_snd_oper_state_msg(struct cl_cb_tag *cb, AVD_AVND *avnd, uint32_t
msg_id_ack);
+uint32_t avd_snd_op_req_msg(struct cl_cb_tag *cb, AVD_AVND *avnd,
AVSV_PARAM_INFO *param_info);
+uint32_t avd_snd_su_reg_msg(struct cl_cb_tag *cb, AVD_AVND *avnd, bool
fail_over);
uint32_t avd_snd_su_msg(struct cl_cb_tag *cb, AVD_SU *su);
uint32_t avd_snd_comp_msg(struct cl_cb_tag *cb, AVD_COMP *comp);
uint32_t avd_snd_susi_msg(struct cl_cb_tag *cb, AVD_SU *su, struct
avd_su_si_rel_tag *susi,
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_set_leds_msg(struct cl_cb_tag *cb, AVD_AVND *avnd);
-uint32_t avd_snd_pg_resp_msg(struct cl_cb_tag *, struct avd_avnd_tag *,
AVD_CSI *,
+uint32_t avd_snd_pg_resp_msg(struct cl_cb_tag *, AVD_AVND *, 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 *,
+uint32_t avd_snd_pg_upd_msg(struct cl_cb_tag *, AVD_AVND *, struct
avd_comp_csi_rel_tag *,
SaAmfProtectionGroupChangesT, SaNameT *);
uint32_t avd_snd_hb_msg(struct cl_cb_tag *);
-uint32_t avd_snd_comp_validation_resp(struct cl_cb_tag *cb, struct
avd_avnd_tag *avnd,
+uint32_t avd_snd_comp_validation_resp(struct cl_cb_tag *cb, AVD_AVND *avnd,
AVD_COMP *comp_ptr, AVD_DND_MSG
*n2d_msg);
void avsv_d2d_msg_free(AVD_D2D_MSG *);
uint32_t avd_d2d_msg_snd(struct cl_cb_tag *, AVD_D2D_MSG *);
@@ -138,7 +138,7 @@ extern SaAisErrorT avd_object_name_creat
int amfd_file_dump(const char* filename);
extern int avd_admin_op_msg_snd(const SaNameT *dn, AVSV_AMF_CLASS_ID class_id,
- SaAmfAdminOperationIdT opId, struct avd_avnd_tag *node);
+ SaAmfAdminOperationIdT opId, AVD_AVND *node);
extern const char* avd_getparent(const char* dn);
extern void amfd_switch(AVD_CL_CB *cb);
extern uint32_t avd_post_amfd_switch_role_change_evt(AVD_CL_CB *cb,
SaAmfHAStateT role);
diff --git a/osaf/services/saf/amf/amfd/node.cc
b/osaf/services/saf/amf/amfd/node.cc
--- a/osaf/services/saf/amf/amfd/node.cc
+++ b/osaf/services/saf/amf/amfd/node.cc
@@ -78,30 +78,48 @@ void avd_node_db_add(AVD_AVND *node)
}
}
+//
+void AVD_AVND::initialize() {
+ name = {};
+ pg_csi_list.order = NCS_DBLIST_ANY_ORDER;
+ pg_csi_list.cmp_cookie = avsv_dblist_uns32_cmp;
+ saAmfNodeAdminState = SA_AMF_ADMIN_UNLOCKED;
+ saAmfNodeOperState = SA_AMF_OPERATIONAL_DISABLED;
+ node_state = AVD_AVND_STATE_ABSENT;
+ node_info.member = SA_FALSE;
+ type = AVSV_AVND_CARD_PAYLOAD;
+}
+
+//
+AVD_AVND::AVD_AVND() {
+ initialize();
+}
+
+//
+AVD_AVND::AVD_AVND(const SaNameT *dn) {
+
+ char *tmp_node_name;
+ SaNameT rdn = *dn;
+
+ initialize();
+
+ memcpy(&name.value, dn->value, dn->length);
+ name.length = dn->length;
+ tmp_node_name = strchr((char*)rdn.value, ',');
+ *tmp_node_name = 0;
+ tmp_node_name = strchr((char*)rdn.value, '=');
+ tmp_node_name++;
+ node_name = StrDup(tmp_node_name);
+}
+
+//
AVD_AVND *avd_node_new(const SaNameT *dn)
{
- AVD_AVND *node;
- char *node_name;
- SaNameT rdn = *dn;
+ AVD_AVND *node;
- node = new AVD_AVND();
+ node = new AVD_AVND(dn);
- memcpy(node->name.value, dn->value, dn->length);
- node->name.length = dn->length;
- node_name = strchr((char*)rdn.value, ',');
- *node_name = 0;
- node_name = strchr((char*)rdn.value, '=');
- node_name++;
- node->node_name = StrDup(node_name);
- node->pg_csi_list.order = NCS_DBLIST_ANY_ORDER;
- node->pg_csi_list.cmp_cookie = avsv_dblist_uns32_cmp;
- node->saAmfNodeAdminState = SA_AMF_ADMIN_UNLOCKED;
- node->saAmfNodeOperState = SA_AMF_OPERATIONAL_DISABLED;
- node->node_state = AVD_AVND_STATE_ABSENT;
- node->node_info.member = SA_FALSE;
- node->type = AVSV_AVND_CARD_PAYLOAD;
-
- return node;
+ return node;
}
void avd_node_delete(AVD_AVND *node)
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
@@ -1961,7 +1961,7 @@ void AVD_SU::set_su_switch(SaToggleState
m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, this, AVSV_CKPT_SU_SWITCH);
}
-struct avd_avnd_tag *AVD_SU::get_node_ptr(void) {
+AVD_AVND *AVD_SU::get_node_ptr(void) {
if (su_is_external == true)
return avd_cb->ext_comp_info.local_avnd_node;
else
@@ -1976,7 +1976,7 @@ struct avd_avnd_tag *AVD_SU::get_node_pt
* @return true if SU can be made in-service
*/
bool AVD_SU::is_in_service(void) {
- struct avd_avnd_tag *node = get_node_ptr();
+ AVD_AVND *node = get_node_ptr();
const AVD_SG *sg = sg_of_su;
const AVD_APP *app = sg->app;
@@ -2010,7 +2010,7 @@ bool AVD_SU::is_in_service(void) {
* @return true if SU can be made in-service
*/
bool AVD_SU::is_instantiable(void) {
- struct avd_avnd_tag *node = get_node_ptr();
+ AVD_AVND *node = get_node_ptr();
const AVD_SG *sg = sg_of_su;
const AVD_APP *app = sg->app;
------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel