osaf/services/saf/amf/amfd/include/su.h |  10 ++--
 osaf/services/saf/amf/amfd/su.cc        |  59 +++++++++++++++++++-------------
 2 files changed, 39 insertions(+), 30 deletions(-)


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
@@ -42,6 +42,10 @@ class AVD_SG;
 //TODO: all attributes that have a setter should probably have an getter
 class AVD_SU {
  public:
+       AVD_SU();
+       explicit AVD_SU(const SaNameT *dn);
+       ~AVD_SU() {};
+
        SaNameT name;
        SaNameT saAmfSUType;
        uint32_t saAmfSURank;
@@ -93,9 +97,6 @@ class AVD_SU {
        struct avd_sutype *su_type;
        AVD_SU *su_list_su_type_next;
 
-       AVD_SU() {};
-       explicit AVD_SU(const SaNameT *dn);
-       ~AVD_SU() {};
        void set_su_failover(bool value);
        void dec_curr_stdby_si();
        void inc_curr_stdby_si();
@@ -133,9 +134,8 @@ class AVD_SU {
        void shutdown(SaImmOiHandleT immoi_handle, SaInvocationT invocation);
        void lock(SaImmOiHandleT immoi_handle, SaInvocationT invocation,
                SaAmfAdminStateT adm_state);
-
-
  private:
+       void initialize();
        void send_attribute_update(AVSV_AMF_SU_ATTR_ID attrib_id);
        void set_saAmfSUPreInstantiable(bool value);
 
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
@@ -32,31 +32,30 @@
 
 AmfDb<std::string, AVD_SU> *su_db = NULL;
 
-AVD_SU::AVD_SU(const SaNameT *dn):
-               saAmfSURank(0),
-               saAmfSUFailover(false),
-               saAmfSUFailover_configured(false),
-               saAmfSUPreInstantiable(static_cast<SaBoolT>(false)),
-               saAmfSUOperState(SA_AMF_OPERATIONAL_DISABLED),
-               saAmfSuReadinessState(SA_AMF_READINESS_OUT_OF_SERVICE),
-               saAmfSUPresenceState(SA_AMF_PRESENCE_UNINSTANTIATED),
-               saAmfSUNumCurrActiveSIs(0),
-               saAmfSUNumCurrStandbySIs(0),
-               saAmfSURestartCount(0),
-               term_state(false),
-               su_switch(AVSV_SI_TOGGLE_STABLE),
-               su_is_external(false),
-               sg_of_su(NULL),
-               su_on_node(NULL),
-               list_of_susi(NULL),
-               list_of_comp(NULL),
-               sg_list_su_next(NULL),
-               avnd_list_su_next(NULL),
-               su_type(NULL),
-               su_list_su_type_next(NULL) {
-
-       memcpy(name.value, dn->value, sizeof(name.value));
-       name.length = dn->length;
+void AVD_SU::initialize() {
+       
+       saAmfSURank = 0;
+       saAmfSUFailover = false;
+       saAmfSUFailover_configured = false;
+       saAmfSUPreInstantiable = SA_FALSE;
+       saAmfSUOperState = SA_AMF_OPERATIONAL_DISABLED;
+       saAmfSuReadinessState = SA_AMF_READINESS_OUT_OF_SERVICE;
+       saAmfSUPresenceState = SA_AMF_PRESENCE_UNINSTANTIATED;
+       saAmfSUNumCurrActiveSIs = 0;
+       saAmfSUNumCurrStandbySIs = 0;
+       saAmfSURestartCount = 0;
+       term_state = false;
+       su_switch = AVSV_SI_TOGGLE_STABLE;
+       su_is_external = false;
+       sg_of_su = NULL;
+       su_on_node = NULL;
+       list_of_susi = NULL;
+       list_of_comp = NULL;
+       sg_list_su_next = NULL;
+       avnd_list_su_next = NULL;
+       su_type = NULL;
+       su_list_su_type_next = NULL; 
+       name.length = 0;
        saAmfSUType.length = 0;
        saAmfSUMaintenanceCampaign.length = 0;
        saAmfSUHostedByNode.length = 0;
@@ -64,6 +63,16 @@ AVD_SU::AVD_SU(const SaNameT *dn):
        pend_cbk.admin_oper = (SaAmfAdminOperationIdT)0;
 }
 
+AVD_SU::AVD_SU() {
+       initialize();
+}
+
+AVD_SU::AVD_SU(const SaNameT *dn) {
+       initialize();
+       memcpy(name.value, dn->value, sizeof(name.value));
+       name.length = dn->length;
+}
+
 /**
  * Delete the SU from the model. Check point with peer. Send delete order
  * to node director.

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to