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