osaf/services/saf/amf/amfd/include/proc.h    |   5 -----
 osaf/services/saf/amf/amfd/include/sg.h      |  14 ++++++++++++--
 osaf/services/saf/amf/amfd/sg_2n_fsm.cc      |  22 +---------------------
 osaf/services/saf/amf/amfd/sg_nored_fsm.cc   |  22 +---------------------
 osaf/services/saf/amf/amfd/sg_npm_fsm.cc     |  22 +---------------------
 osaf/services/saf/amf/amfd/sg_nway_fsm.cc    |  19 +------------------
 osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc |  22 +---------------------
 7 files changed, 17 insertions(+), 109 deletions(-)


diff --git a/osaf/services/saf/amf/amfd/include/proc.h 
b/osaf/services/saf/amf/amfd/include/proc.h
--- a/osaf/services/saf/amf/amfd/include/proc.h
+++ b/osaf/services/saf/amf/amfd/include/proc.h
@@ -60,7 +60,6 @@ uint32_t avd_sg_2n_susi_sucss_func(AVD_C
 uint32_t avd_sg_2n_susi_fail_func(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL 
*susi,
                                        AVSV_SUSI_ACT act, SaAmfHAStateT state);
 uint32_t avd_sg_2n_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd);
-uint32_t avd_sg_2n_sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
 void avd_sg_2n_init(AVD_SG *sg);
 
 /* The following are for N-Way redundancy model */
@@ -72,7 +71,6 @@ uint32_t avd_sg_nway_susi_sucss_func(AVD
 uint32_t avd_sg_nway_susi_fail_func(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL 
*susi,
                                          AVSV_SUSI_ACT act, SaAmfHAStateT 
state);
 uint32_t avd_sg_nway_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd);
-uint32_t avd_sg_nway_sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
 void avd_sg_nway_init(AVD_SG *sg);
 
 /* The following are for N+M redundancy model */
@@ -83,7 +81,6 @@ uint32_t avd_sg_npm_susi_sucss_func(AVD_
 uint32_t avd_sg_npm_susi_fail_func(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL 
*susi,
                                         AVSV_SUSI_ACT act, SaAmfHAStateT 
state);
 uint32_t avd_sg_npm_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd);
-uint32_t avd_sg_npm_sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
 void avd_sg_npm_init(AVD_SG *sg);
 
 /* The following are for No redundancy model */
@@ -94,7 +91,6 @@ uint32_t avd_sg_nored_susi_sucss_func(AV
 uint32_t avd_sg_nored_susi_fail_func(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL 
*susi,
                                           AVSV_SUSI_ACT act, SaAmfHAStateT 
state);
 uint32_t avd_sg_nored_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd);
-uint32_t avd_sg_nored_sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
 void avd_sg_nored_init(AVD_SG *sg);
 
 /* The following are for N-way Active redundancy model */
@@ -106,7 +102,6 @@ uint32_t avd_sg_nacvred_susi_sucss_func(
 uint32_t avd_sg_nacvred_susi_fail_func(AVD_CL_CB *cb, AVD_SU *su, 
AVD_SU_SI_REL *susi,
                                             AVSV_SUSI_ACT act, SaAmfHAStateT 
state);
 uint32_t avd_sg_nacvred_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND 
*avnd);
-uint32_t avd_sg_nacvred_sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
 void avd_sg_nacv_init(AVD_SG *sg);
 
 void avd_node_up_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
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
@@ -254,8 +254,13 @@ public:
         */
        virtual SaAisErrorT si_swap(AVD_SI *si, SaInvocationT invocation);
 
-       // Handle SG admin op LOCK/SHUTDOWN
-       uint32_t (*sg_admin_down)(AVD_CL_CB *cb, AVD_SG *sg);
+       /**
+        * Handle SG admin op LOCK/SHUTDOWN
+        * @param cb
+        * @param sg
+        * @return
+        */
+       virtual uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg) = 0;
 
        // Handle SU inservice event, possibly assign the SU
        uint32_t (*su_insvc)(AVD_CL_CB *cb, AVD_SU *su);
@@ -294,6 +299,7 @@ public:
        uint32_t si_assign(AVD_CL_CB *cb, AVD_SI *si);
        uint32_t si_admin_down(AVD_CL_CB *cb, AVD_SI *si);
        SaAisErrorT si_swap(AVD_SI *si, SaInvocationT invocation);
+       uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
 };
 
 /**
@@ -306,6 +312,7 @@ public:
        uint32_t realign(AVD_CL_CB *cb, AVD_SG *sg);
        uint32_t si_assign(AVD_CL_CB *cb, AVD_SI *si);
        uint32_t si_admin_down(AVD_CL_CB *cb, AVD_SI *si);
+       uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
 };
 
 /**
@@ -318,6 +325,7 @@ public:
        uint32_t realign(AVD_CL_CB *cb, AVD_SG *sg);
        uint32_t si_assign(AVD_CL_CB *cb, AVD_SI *si);
        uint32_t si_admin_down(AVD_CL_CB *cb, AVD_SI *si);
+       uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
 };
 
 /**
@@ -330,6 +338,7 @@ public:
        uint32_t realign(AVD_CL_CB *cb, AVD_SG *sg);
        uint32_t si_assign(AVD_CL_CB *cb, AVD_SI *si);
        uint32_t si_admin_down(AVD_CL_CB *cb, AVD_SI *si);
+       uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
 };
 
 /**
@@ -342,6 +351,7 @@ public:
        uint32_t realign(AVD_CL_CB *cb, AVD_SG *sg);
        uint32_t si_assign(AVD_CL_CB *cb, AVD_SI *si);
        uint32_t si_admin_down(AVD_CL_CB *cb, AVD_SI *si);
+       uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg);
 };
 
 
diff --git a/osaf/services/saf/amf/amfd/sg_2n_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
@@ -3859,26 +3859,7 @@ done:
        return rc;
 }
 
-/*****************************************************************************
- * Function: avd_sg_2n_sg_admin_down
- *
- * Purpose:  This function is called when SGs admin state is changed to
- * LOCK or shutdown. The functionality will be as described in
- * the SG design FSM. 
- *
- * Input: cb - the AVD control block
- *        sg - The SG pointer.
- *        
- *
- * Returns: NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE.
- *
- * NOTES: This is a 2N redundancy model specific function.
- *
- * 
- **************************************************************************/
-
-uint32_t avd_sg_2n_sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg)
-{
+uint32_t SG_2N::sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg) {
        AVD_SU_SI_REL *a_susi, *s_susi;
        uint32_t rc = NCSCC_RC_FAILURE;
 
@@ -4081,7 +4062,6 @@ AVD_SU *get_other_su_from_oper_list(AVD_
  */
 void avd_sg_2n_init(AVD_SG *sg)
 {
-       sg->sg_admin_down = avd_sg_2n_sg_admin_down;
        sg->su_insvc = avd_sg_2n_su_insvc_func;
        sg->su_fault = avd_sg_2n_su_fault_func;
        sg->su_admin_down = avd_sg_2n_su_admin_fail;
diff --git a/osaf/services/saf/amf/amfd/sg_nored_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_nored_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_nored_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_nored_fsm.cc
@@ -1235,26 +1235,7 @@ uint32_t SG_NORED::si_admin_down(AVD_CL_
        return NCSCC_RC_SUCCESS;
 }
 
-/*****************************************************************************
- * Function: avd_sg_nored_sg_admin_down
- *
- * Purpose:  This function is called when SGs admin state is changed to
- * LOCK or shutdown. The functionality will be as described in
- * the SG design FSM. 
- *
- * Input: cb - the AVD control block
- *        sg - The SG pointer.
- *        
- *
- * Returns: NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE.
- *
- * NOTES: This is a No redundancy model specific function.
- *
- * 
- **************************************************************************/
-
-uint32_t avd_sg_nored_sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg)
-{
+uint32_t SG_NORED::sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg) {
        AVD_SU *i_su;
        AVD_SG_OPER *l_suopr;
 
@@ -1358,7 +1339,6 @@ uint32_t avd_sg_nored_sg_admin_down(AVD_
  */
 void avd_sg_nored_init(AVD_SG *sg)
 {
-       sg->sg_admin_down = avd_sg_nored_sg_admin_down;
        sg->su_insvc = avd_sg_nored_su_insvc_func;
        sg->su_fault = avd_sg_nored_su_fault_func;
        sg->su_admin_down = avd_sg_nored_su_admin_fail;
diff --git a/osaf/services/saf/amf/amfd/sg_npm_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
@@ -4411,26 +4411,7 @@ uint32_t SG_NPM::si_admin_down(AVD_CL_CB
        return NCSCC_RC_SUCCESS;
 }
 
-/*****************************************************************************
- * Function: avd_sg_npm_sg_admin_down
- *
- * Purpose:  This function is called when SGs admin state is changed to
- * LOCK or shutdown. The functionality will be as described in
- * the SG design FSM. 
- *
- * Input: cb - the AVD control block
- *        sg - The SG pointer.
- *        
- *
- * Returns: NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE.
- *
- * NOTES: This is a N+M redundancy model specific function.
- *
- * 
- **************************************************************************/
-
-uint32_t avd_sg_npm_sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg)
-{
+uint32_t SG_NPM::sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg) {
        AVD_SU *i_su;
 
        TRACE_ENTER2("%u", sg->sg_fsm_state);
@@ -4538,7 +4519,6 @@ uint32_t avd_sg_npm_sg_admin_down(AVD_CL
  */
 void avd_sg_npm_init(AVD_SG *sg)
 {
-       sg->sg_admin_down = avd_sg_npm_sg_admin_down;
        sg->su_insvc = avd_sg_npm_su_insvc_func;
        sg->su_fault = avd_sg_npm_su_fault_func;
        sg->su_admin_down = avd_sg_npm_su_admin_fail;
diff --git a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
@@ -791,23 +791,7 @@ done:
        return rc;
 }
 
-/*****************************************************************************
- * Function: avd_sg_nway_sg_admin_down
- *
- * Purpose:  This function is called when SGs admin state is changed to
- * LOCK or shutdown. The functionality will be as described in
- * the SG design FSM. 
- *
- * Input: cb - the AVD control block
- *        sg - The SG pointer.
- *        
- * Returns: NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE.
- *
- * Notes: This is a N-Way redundancy model specific function.
- * 
- **************************************************************************/
-uint32_t avd_sg_nway_sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg)
-{
+uint32_t SG_NWAY::sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg) {
        AVD_SU_SI_REL *curr_susi = 0;
        AVD_SU *curr_su = 0;
        AVD_SI *curr_si = 0;
@@ -3624,7 +3608,6 @@ void avd_sg_nway_node_fail_sg_realign(AV
  */
 void avd_sg_nway_init(AVD_SG *sg)
 {
-       sg->sg_admin_down = avd_sg_nway_sg_admin_down;
        sg->su_insvc = avd_sg_nway_su_insvc_func;
        sg->su_fault = avd_sg_nway_su_fault_func;
        sg->su_admin_down = avd_sg_nway_su_admin_fail;
diff --git a/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc
@@ -1768,26 +1768,7 @@ uint32_t SG_NACV::si_admin_down(AVD_CL_C
        return NCSCC_RC_SUCCESS;
 }
 
-/*****************************************************************************
- * Function: avd_sg_nacvred_sg_admin_down
- *
- * Purpose:  This function is called when SGs admin state is changed to
- * LOCK or shutdown. The functionality will be as described in
- * the SG design FSM. 
- *
- * Input: cb - the AVD control block
- *        sg - The SG pointer.
- *        
- *
- * Returns: NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE.
- *
- * NOTES: This is a N-way active redundancy model specific function.
- *
- * 
- **************************************************************************/
-
-uint32_t avd_sg_nacvred_sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg)
-{
+uint32_t SG_NACV::sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg) {
        AVD_SU *i_su;
        AVD_SG_OPER *l_suopr;
 
@@ -2081,7 +2062,6 @@ done:
  */
 void avd_sg_nacv_init(AVD_SG *sg)
 {
-       sg->sg_admin_down = avd_sg_nacvred_sg_admin_down;
        sg->su_insvc = avd_sg_nacvred_su_insvc_func;
        sg->su_fault = avd_sg_nacvred_su_fault_func;
        sg->su_admin_down = avd_sg_nacvred_su_admin_fail;

------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to