There are some problems found testing this one. Investigating...
/Hans

> -----Original Message-----
> From: Nagendra Kumar [mailto:[email protected]]
> Sent: den 2 maj 2014 13:57
> To: Hans Feldt; Praveen Malviya; Hans Nordebäck
> Cc: [email protected]
> Subject: RE: [devel] [PATCH 4 of 7] amfd: add SU constr/destr [#713]
> 
> Ok.
> 
> -Nagu
> 
> > -----Original Message-----
> > From: Hans Feldt [mailto:[email protected]]
> > Sent: 02 May 2014 17:18
> > To: Nagendra Kumar; Praveen Malviya; Hans Nordebäck
> > Cc: [email protected]
> > Subject: RE: [devel] [PATCH 4 of 7] amfd: add SU constr/destr [#713]
> >
> >
> >
> > > -----Original Message-----
> > > From: Nagendra Kumar [mailto:[email protected]]
> > > Sent: den 2 maj 2014 12:31
> > > To: Hans Feldt; Praveen Malviya; Hans Nordebäck
> > > Cc: [email protected]
> > > Subject: Re: [devel] [PATCH 4 of 7] amfd: add SU constr/destr [#713]
> > >
> > > 1.        Can we move all the initialization in default constructor and 
> > > fill dn name
> > after words.
> > [Hans] guess we can do many things, this works. In a later patch I have 
> > added an
> > init() method. So new+init it will replace the current su_create() function
> > > 2.        Other pointers are not necessary to initialize, any specific 
> > > reason for
> > doing it?
> > [Hans] they're uninitialized so they have to be set otherwise bad things
> > happen...
> >
> > Maybe we can go with this for now and think more about it when other classes
> > are introduced?
> > Thanks,
> > Hans
> >
> > >
> > > Thanks
> > > -Nagu
> > >
> > > > -----Original Message-----
> > > > From: Hans Feldt [mailto:[email protected]]
> > > > Sent: 30 April 2014 10:31
> > > > To: Nagendra Kumar; Praveen Malviya; [email protected]
> > > > Cc: [email protected]
> > > > Subject: [PATCH 4 of 7] amfd: add SU constr/destr [#713]
> > > >
> > > >  osaf/services/saf/amf/amfd/include/su.h |  17 +------
> > > >  osaf/services/saf/amf/amfd/su.cc        |  74 
> > > > +++++++++++++++----------------
> > -
> > > >  2 files changed, 37 insertions(+), 54 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
> > > > @@ -92,6 +92,9 @@ class AVD_SU {
> > > >         struct avd_sutype *su_type;
> > > >         AVD_SU *su_list_su_type_next;
> > > >
> > > > +       AVD_SU() {};
> > > > +       AVD_SU(const SaNameT *dn);
> > > > +       ~AVD_SU();
> > > >         void set_su_failover(bool value);
> > > >         void dec_curr_stdby_si(void);
> > > >         void inc_curr_stdby_si(void);
> > > > @@ -146,20 +149,6 @@ m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(cb,
> > su,
> > > >   else su_node_ptr = i_su->su_on_node;
> > > >
> > > >  /**
> > > > - * Allocate SU memory and initialize attributes to defaults
> > > > - * @param dn
> > > > - *
> > > > - * @return AVD_SU*
> > > > - */
> > > > -extern AVD_SU *avd_su_new(const SaNameT *dn);
> > > > -
> > > > -/**
> > > > - * Free SU memory
> > > > - * @param su
> > > > - */
> > > > -extern void avd_su_delete(AVD_SU *su);
> > > > -
> > > > -/**
> > > >   * Get SUs from IMM and create internal objects
> > > >   *
> > > >   * @return SaAisErrorT
> > > > 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
> > > > @@ -31,51 +31,46 @@
> > > >
> > > >  AmfDb<AVD_SU> *su_db = NULL;
> > > >
> > > > -AVD_SU *avd_su_new(const SaNameT *dn) -{
> > > > -       SaNameT sg_name;
> > > > -       AVD_SU *su;
> > > > -
> > > > -       su = new AVD_SU();
> > > > -
> > > > -       memcpy(su->name.value, dn->value, dn->length);
> > > > -       su->name.length = dn->length;
> > > > -       avsv_sanamet_init(dn, &sg_name, "safSg");
> > > > -       su->saAmfSUFailover = false;
> > > > -       su->term_state = false;
> > > > -       su->su_switch = AVSV_SI_TOGGLE_STABLE;
> > > > -       su->saAmfSUPreInstantiable = static_cast<SaBoolT>(false);
> > > > -       /* saAmfSUOperState is set when the SU is added to model 
> > > > depending
> > > > on
> > > > -        * node state. Initialized to invalid due to filtering in
> > > > avd_su_oper_state_set. */
> > > > -       su->saAmfSUOperState = static_cast<SaAmfOperationalStateT>(0);
> > > > -       su->saAmfSUPresenceState = SA_AMF_PRESENCE_UNINSTANTIATED;
> > > > -       su->saAmfSuReadinessState = SA_AMF_READINESS_OUT_OF_SERVICE;
> > > > -       su->su_is_external = false;
> > > > -
> > > > -       return su;
> > > > +AVD_SU::AVD_SU(const SaNameT *dn) {
> > > > +       memcpy(name.value, dn->value, sizeof(name.value));
> > > > +       name.length = dn->length;
> > > > +       saAmfSUFailover = false;
> > > > +       term_state = false;
> > > > +       su_switch = AVSV_SI_TOGGLE_STABLE;
> > > > +       saAmfSUPreInstantiable = static_cast<SaBoolT>(false);
> > > > +       saAmfSUOperState = SA_AMF_OPERATIONAL_DISABLED;
> > > > +       saAmfSUPresenceState = SA_AMF_PRESENCE_UNINSTANTIATED;
> > > > +       saAmfSuReadinessState = SA_AMF_READINESS_OUT_OF_SERVICE;
> > > > +       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;
> > > > +       saAmfSUHostedByNode.length = 0;
> > > >  }
> > > >
> > > >  /**
> > > >   * Delete the SU from the model. Check point with peer. Send delete 
> > > > order
> > > >   * to node director. Delete all contained components.
> > > > - *
> > > > - * @param i_su
> > > >   */
> > > > -void avd_su_delete(AVD_SU *su)
> > > > -{
> > > > -       TRACE_ENTER2("'%s'", su->name.value);
> > > > +AVD_SU::~AVD_SU() {
> > > > +       TRACE_ENTER2("'%s'", name.value);
> > > >
> > > >         /* All the components under this SU should have been deleted
> > > >          * by now, just do the sanity check to confirm it is done
> > > >          */
> > > > -       osafassert(su->list_of_comp == NULL);
> > > > +       osafassert(list_of_comp == NULL);
> > > > +       osafassert(list_of_susi == NULL);
> > > >
> > > > -       m_AVSV_SEND_CKPT_UPDT_ASYNC_RMV(avd_cb, su,
> > > > AVSV_CKPT_AVD_SU_CONFIG);
> > > > -       avd_node_remove_su(su);
> > > > -       avd_sutype_remove_su(su);
> > > > -       su_db->erase(su);
> > > > -       avd_sg_remove_su(su);
> > > > -       delete su;
> > > > +       m_AVSV_SEND_CKPT_UPDT_ASYNC_RMV(avd_cb, this,
> > > > AVSV_CKPT_AVD_SU_CONFIG);
> > > > +       avd_node_remove_su(this);
> > > > +       avd_sutype_remove_su(this);
> > > > +       su_db->erase(this);
> > > > +       avd_sg_remove_su(this);
> > > >
> > > >         TRACE_LEAVE();
> > > >  }
> > > > @@ -93,8 +88,7 @@ AVD_SU *avd_su_get_or_create(const SaNam
> > > >
> > > >         if (su == NULL) {
> > > >                 TRACE("'%s' does not exist, creating it", dn->value);
> > > > -               su = avd_su_new(dn);
> > > > -               osafassert(su != NULL);
> > > > +               su = new AVD_SU(dn);
> > > >                 unsigned int rc = su_db->insert(su);
> > > >                 osafassert(rc == NCSCC_RC_SUCCESS);
> > > >         }
> > > > @@ -420,8 +414,7 @@ static AVD_SU *su_create(const SaNameT *
> > > >         ** but needs to get configuration attributes initialized.
> > > >         */
> > > >         if ((su = su_db->find(dn)) == NULL) {
> > > > -               if ((su = avd_su_new(dn)) == NULL)
> > > > -                       goto done;
> > > > +               su = new AVD_SU(dn);
> > > >         } else
> > > >                 TRACE("already created, refreshing config...");
> > > >
> > > > @@ -1489,7 +1482,7 @@ static void su_ccb_apply_delete_hdlr(str
> > > >         TRACE_ENTER2("'%s'", su->name.value);
> > > >
> > > >         if (avd_cb->avail_state_avd != SA_AMF_HA_ACTIVE) {
> > > > -               avd_su_delete(su);
> > > > +               delete su;
> > > >                 goto done;
> > > >         }
> > > >
> > > > @@ -1505,7 +1498,8 @@ static void su_ccb_apply_delete_hdlr(str
> > > >                 avd_snd_op_req_msg(avd_cb, su_node_ptr, &param);
> > > >         }
> > > >
> > > > -       avd_su_delete(su);
> > > > +       delete su;
> > > > +
> > > >         if (AVD_SG_FSM_STABLE == sg->sg_fsm_state) {
> > > >                 /*if su of uneqal rank has been delete and all SUs are 
> > > > of same
> > > > rank then do screening
> > > >                   for SI Distribution. */
> > >
> > > ----------------------------------------------------------------------
> > > -------- "Accelerate Dev Cycles with Automated Cross-Browser Testing -
> > > For FREE Instantly run your Selenium tests across 300+ browser/OS
> > > combos.  Get unparalleled scalability from the best Selenium testing
> > > platform available.
> > > Simple to use. Nothing to install. Get started now for free."
> > > http://p.sf.net/sfu/SauceLabs
> > > _______________________________________________
> > > Opensaf-devel mailing list
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/opensaf-devel

------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to