Hi Gary, Long,

Some comments/observations:
-In AMFD saAisNameBorrow() is used in logging and AMFND uses 
osaf_extended_name_borrow().
For osaf_extended_name_borrow() note in osaf_extended_name.h says it is 
intended for mainly agent libraries. But middle-ware services always use 
core libs. At the same time saAisNameBorrow(), I think, is for application.
any reason of using them this way and what is the recommended way?

-I think, one case may arrive from upgrade perspective.
Suppose any application (say amf_demo app) is running without enabling 
long dn and a csi, with its RDn greater than 256, is added dynamically 
(long dn enabled in IMM). In this case AMFD will assign this csi to the 
running component. Component will not be able to read the CSI and may crash.
This is related to invocation of CSI_SET callback but same will be valid 
for PG tracking also. There may be other cases also.
Even truncation will not work in this case.
- While running some tests observed crashes in amfnd and amfd.
        I will update #1642 with bt information.

Further reviewing..

Thanks,
Praveen


On 05-Jul-16 1:25 PM, Gary Lee wrote:
>  osaf/services/saf/amf/amfd/include/Makefile.am     |   1 -
>  osaf/services/saf/amf/amfd/include/app.h           |   8 +-
>  osaf/services/saf/amf/amfd/include/apptype.h       |  10 +-
>  osaf/services/saf/amf/amfd/include/cb.h            |   4 +-
>  osaf/services/saf/amf/amfd/include/ckpt.h          |   4 +-
>  osaf/services/saf/amf/amfd/include/cluster.h       |   8 +-
>  osaf/services/saf/amf/amfd/include/comp.h          |  58 
> +++++++++++----------
>  osaf/services/saf/amf/amfd/include/csi.h           |  26 ++++----
>  osaf/services/saf/amf/amfd/include/evt.h           |  22 ++++---
>  osaf/services/saf/amf/amfd/include/imm.h           |  21 ++++---
>  osaf/services/saf/amf/amfd/include/node.h          |  21 +++----
>  osaf/services/saf/amf/amfd/include/ntf.h           |  34 ++++++------
>  osaf/services/saf/amf/amfd/include/pg.h            |   2 +-
>  osaf/services/saf/amf/amfd/include/proc.h          |  22 ++++----
>  osaf/services/saf/amf/amfd/include/sg.h            |   9 +-
>  osaf/services/saf/amf/amfd/include/sgtype.h        |  10 +-
>  osaf/services/saf/amf/amfd/include/si.h            |  12 ++--
>  osaf/services/saf/amf/amfd/include/si_dep.h        |  16 +++---
>  osaf/services/saf/amf/amfd/include/su.h            |  18 +++---
>  osaf/services/saf/amf/amfd/include/susi.h          |  14 ++--
>  osaf/services/saf/amf/amfd/include/sutcomptype.h   |   4 +-
>  osaf/services/saf/amf/amfd/include/sutype.h        |   6 +-
>  osaf/services/saf/amf/amfd/include/svctype.h       |   4 +-
>  osaf/services/saf/amf/amfd/include/svctypecstype.h |   6 +-
>  osaf/services/saf/amf/amfd/include/timer.h         |   5 +-
>  osaf/services/saf/amf/amfd/include/util.h          |  17 +++--
>  26 files changed, 185 insertions(+), 177 deletions(-)
>
>
> diff --git a/osaf/services/saf/amf/amfd/include/Makefile.am 
> b/osaf/services/saf/amf/amfd/include/Makefile.am
> --- a/osaf/services/saf/amf/amfd/include/Makefile.am
> +++ b/osaf/services/saf/amf/amfd/include/Makefile.am
> @@ -31,7 +31,6 @@ noinst_HEADERS = \
>     comp.h \
>     clm.h \
>     csi.h \
> -   db_template.h \
>     def.h \
>     evt.h \
>     amfd.h \
> diff --git a/osaf/services/saf/amf/amfd/include/app.h 
> b/osaf/services/saf/amf/amfd/include/app.h
> --- a/osaf/services/saf/amf/amfd/include/app.h
> +++ b/osaf/services/saf/amf/amfd/include/app.h
> @@ -30,13 +30,13 @@
>  #include <include/apptype.h>
>  #include <sg.h>
>  #include <si.h>
> -#include "db_template.h"
> +#include <amf_db_template.h>
>
>  class AVD_APP {
>
>  public:
> -     SaNameT name;
> -     SaNameT saAmfAppType;
> +     std::string name;
> +     std::string saAmfAppType;
>       SaAmfAdminStateT saAmfApplicationAdminState;
>       SaUint32T saAmfApplicationCurrNumSGs;
>       AVD_SG *list_of_sg;
> @@ -45,7 +45,7 @@ public:
>       AVD_APP_TYPE *app_type;
>       
>       AVD_APP();
> -     explicit AVD_APP(const SaNameT *dn);
> +     explicit AVD_APP(const std::string& dn);
>       ~AVD_APP();
>       
>       void add_si(AVD_SI *si);
> diff --git a/osaf/services/saf/amf/amfd/include/apptype.h 
> b/osaf/services/saf/amf/amfd/include/apptype.h
> --- a/osaf/services/saf/amf/amfd/include/apptype.h
> +++ b/osaf/services/saf/amf/amfd/include/apptype.h
> @@ -29,16 +29,16 @@
>
>  #include <sg.h>
>  #include <si.h>
> -#include "db_template.h"
> +#include <amf_db_template.h>
>
>  class AVD_APP;
>
>  class AVD_APP_TYPE {
>   public:
> -  explicit AVD_APP_TYPE(const SaNameT* dn);
> +  explicit AVD_APP_TYPE(const std::string& dn);
>    ~AVD_APP_TYPE();
> -  SaNameT name {};
> -  std::vector<SaNameT> sgAmfApptSGTypes {};
> +  std::string name {};
> +  std::vector<std::string> sgAmfApptSGTypes {};
>    AVD_APP *list_of_app {};
>   private:
>    AVD_APP_TYPE();
> @@ -47,7 +47,7 @@ class AVD_APP_TYPE {
>    void operator=(const AVD_APP_TYPE&);
>  };
>
> -extern AVD_APP_TYPE *avd_apptype_get(const SaNameT *dn);
> +extern AVD_APP_TYPE *avd_apptype_get(const std::string& dn);
>  extern void avd_apptype_add_app(AVD_APP *app);
>  extern void avd_apptype_remove_app(AVD_APP *app);
>  extern SaAisErrorT avd_apptype_config_get(void);
> 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
> @@ -93,7 +93,7 @@ typedef struct avd_ext_comp_info {
>   * during fail over.
>   */
>  typedef struct avd_evt_queue {
> -     struct avd_evt_tag *evt;
> +     struct AVD_EVT *evt;
>       struct avd_evt_queue *next;
>  } AVD_EVT_QUEUE;
>
> @@ -240,6 +240,6 @@ typedef struct cl_cb_tag {
>
>  extern AVD_CL_CB *avd_cb;
>
> -struct avd_evt_tag;
> +struct AVD_EVT;
>
>  #endif
> diff --git a/osaf/services/saf/amf/amfd/include/ckpt.h 
> b/osaf/services/saf/amf/amfd/include/ckpt.h
> --- a/osaf/services/saf/amf/amfd/include/ckpt.h
> +++ b/osaf/services/saf/amf/amfd/include/ckpt.h
> @@ -45,7 +45,7 @@
>  #define AVD_MBCSV_SUB_PART_VERSION_2    2
>  #define AVD_MBCSV_SUB_PART_VERSION_MIN  1
>
> -struct avd_evt_tag;
> +struct AVD_EVT;
>  struct cl_cb_tag;
>  class AVD_APP;
>  class AVD_COMP;
> @@ -133,7 +133,7 @@ typedef uint32_t (*AVSV_DECODE_COLD_SYNC
>  /* Function Definations of avd_chkop.c */
>  uint32_t avd_active_role_initialization(struct cl_cb_tag *cb, SaAmfHAStateT 
> role);
>  uint32_t avd_standby_role_initialization(struct cl_cb_tag *cb);
> -void avd_role_change_evh(struct cl_cb_tag *cb, struct avd_evt_tag *evt);
> +void avd_role_change_evh(struct cl_cb_tag *cb, struct AVD_EVT *evt);
>  uint32_t avsv_mbcsv_register(struct cl_cb_tag *cb);
>  uint32_t avsv_mbcsv_deregister(struct cl_cb_tag *cb);
>  uint32_t avsv_set_ckpt_role(struct cl_cb_tag *cb, uint32_t role);
> diff --git a/osaf/services/saf/amf/amfd/include/cluster.h 
> b/osaf/services/saf/amf/amfd/include/cluster.h
> --- a/osaf/services/saf/amf/amfd/include/cluster.h
> +++ b/osaf/services/saf/amf/amfd/include/cluster.h
> @@ -28,8 +28,8 @@
>  #include <node.h>
>
>  typedef struct avd_cluster_tag {
> -     SaNameT saAmfCluster;
> -     SaNameT saAmfClusterClmCluster;
> +     std::string saAmfCluster;
> +     std::string saAmfClusterClmCluster;
>       SaTimeT saAmfClusterStartupTimeout;
>       SaAmfAdminStateT saAmfClusterAdminState;
>  } AVD_CLUSTER;
> @@ -37,8 +37,8 @@ typedef struct avd_cluster_tag {
>  extern AVD_CLUSTER *avd_cluster;
>
>  extern SaAisErrorT avd_cluster_config_get(void);
> -extern void avd_cluster_tmr_init_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> -extern void avd_node_sync_tmr_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> +extern void avd_cluster_tmr_init_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
> +extern void avd_node_sync_tmr_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
>  extern void avd_cluster_constructor(void);
>
>  #endif
> diff --git a/osaf/services/saf/amf/amfd/include/comp.h 
> b/osaf/services/saf/amf/amfd/include/comp.h
> --- a/osaf/services/saf/amf/amfd/include/comp.h
> +++ b/osaf/services/saf/amf/amfd/include/comp.h
> @@ -40,7 +40,7 @@
>  #include <saImm.h>
>  #include <amf_d2nmsg.h>
>  #include <cb.h>
> -#include "db_template.h"
> +#include <amf_db_template.h>
>
>  class AVD_SU;
>  class AVD_COMP_TYPE;
> @@ -58,7 +58,8 @@ typedef struct {
>  class AVD_COMP {
>   public:
>    AVD_COMP();
> -  explicit AVD_COMP(const SaNameT* dn );
> +  explicit AVD_COMP(const std::string& dn);
> +  ~AVD_COMP();
>
>  /**
>   * Set the presence state of the specified component, log, update IMM & 
> check point to peer
> @@ -93,7 +94,7 @@ bool is_preinstantiable() const;
>  bool is_comp_assigned_any_csi() const;
>  SaAisErrorT check_comp_stability() const;
>
> -  SaNameT saAmfCompType;
> +  std::string saAmfCompType;
>
>    /* Detailed as in data structure definition */
>    AVSV_COMP_INFO comp_info;  /* component name field with
> @@ -136,16 +137,16 @@ SaAisErrorT check_comp_stability() const
>                                   * been assigned standby to this component
>                                   * Checkpointing - Sent update independently.
>                                   */
> -  SaNameT comp_proxy_csi;
> -  SaNameT comp_container_csi;
> +  std::string comp_proxy_csi;
> +  std::string comp_container_csi;
>
>    /* runtime attributes */
>    SaAmfOperationalStateT saAmfCompOperState; 
>    SaAmfReadinessStateT   saAmfCompReadinessState;
>    SaAmfPresenceStateT    saAmfCompPresenceState;
>    SaUint32T              saAmfCompRestartCount;
> -  SaNameT                saAmfCompCurrProxyName;
> -  SaNameT              **saAmfCompCurrProxiedNames;
> +  std::string            saAmfCompCurrProxyName;
> +  std::vector<std::string> saAmfCompCurrProxiedNames;
>
>    bool assign_flag;  /* Flag used while assigning. to mark this
>                           * comp has been assigned a CSI from
> @@ -172,10 +173,10 @@ extern AmfDb<std::string, AVD_COMP> *com
>  /* AMF Class SaAmfCompType */
>  class AVD_COMP_TYPE {
>   public:
> -  explicit AVD_COMP_TYPE(const SaNameT *dn);
> -  SaNameT name {};
> +  explicit AVD_COMP_TYPE(const std::string& dn);
> +  std::string name {};
>    SaUint32T saAmfCtCompCategory {};
> -  SaNameT saAmfCtSwBundle {};
> +  std::string saAmfCtSwBundle {};
>    char saAmfCtDefCmdEnv[AVSV_MISC_STR_MAX_SIZE] {};
>    SaTimeT saAmfCtDefClcCliTimeout {};
>    SaTimeT saAmfCtDefCallbackTimeout {};
> @@ -208,14 +209,14 @@ class AVD_COMPCS_TYPE {
>  public:
>       AVD_COMPCS_TYPE();
>
> -     explicit AVD_COMPCS_TYPE(const SaNameT *dn);
> +     explicit AVD_COMPCS_TYPE(const std::string& dn);
>
> -     SaNameT name {};
> +     std::string name {};
>       SaUint32T saAmfCompNumMaxActiveCSIs {};
>       SaUint32T saAmfCompNumMaxStandbyCSIs {};
>       SaUint32T saAmfCompNumCurrActiveCSIs {};
>       SaUint32T saAmfCompNumCurrStandbyCSIs {};
> -     std::vector<SaNameT> saAmfCompAssignedCsi {};
> +     std::vector<std::string> saAmfCompAssignedCsi {};
>       AVD_COMP *comp {};
>  private:
>       // disallow copy and assign
> @@ -227,9 +228,9 @@ extern  AmfDb<std::string, AVD_COMPCS_TY
>  /* AMF Class SaAmfCtCsType */
>  class AVD_CTCS_TYPE {
>   public:
> -  explicit AVD_CTCS_TYPE(const SaNameT *dn);
> +  explicit AVD_CTCS_TYPE(const std::string& dn);
>
> -  SaNameT name {};
> +  std::string name {};
>    SaAmfCompCapabilityModelT saAmfCtCompCapability {};
>    SaUint32T saAmfCtDefNumMaxActiveCSIs {};
>    SaUint32T saAmfCtDefNumMaxStandbyCSIs {};
> @@ -247,14 +248,14 @@ extern AVD_COMP_GLOBALATTR avd_comp_glob
>
>  extern void avd_comp_db_add(AVD_COMP *comp);
>
> -extern AVD_COMP *avd_comp_new(const SaNameT *dn);
> +extern AVD_COMP *avd_comp_new(const std::string& dn);
>  extern void avd_comp_delete(AVD_COMP *comp);
>  extern void avd_su_remove_comp(AVD_COMP* comp);
> -extern SaAisErrorT avd_comp_config_get(const SaNameT* su_name, AVD_SU *su);
> +extern SaAisErrorT avd_comp_config_get(const std::string& su_name, AVD_SU 
> *su);
>  extern void avd_comp_constructor(void);
>
>  extern SaAisErrorT avd_comptype_config_get(void);
> -extern AVD_COMP_TYPE *avd_comptype_get(const SaNameT *comp_type_name);
> +extern AVD_COMP_TYPE *avd_comptype_get(const std::string& comp_type_name);
>  extern void avd_comptype_add_comp(AVD_COMP *comp);
>  extern void avd_comptype_remove_comp(AVD_COMP *comp);
>  extern void avd_comptype_constructor(void);
> @@ -262,19 +263,22 @@ extern void avd_comptype_constructor(voi
>  extern SaAisErrorT avd_compglobalattrs_config_get(void);
>  extern void avd_compglobalattrs_constructor(void);
>
> -extern SaAisErrorT avd_ctcstype_config_get(const SaNameT *comp_type_dn, 
> AVD_COMP_TYPE *comp_type);
> +extern SaAisErrorT avd_ctcstype_config_get(const std::string& comp_type_dn, 
> AVD_COMP_TYPE *comp_type);
>  extern void avd_ctcstype_constructor(void);
>
> -extern AVD_COMPCS_TYPE *avd_compcstype_new(const SaNameT *dn);
> +extern AVD_COMPCS_TYPE *avd_compcstype_new(const std::string& dn);
>  extern void avd_compcstype_delete(AVD_COMPCS_TYPE **cst);
>  extern void avd_compcstype_db_add(AVD_COMPCS_TYPE *cst);
> -extern SaAisErrorT avd_compcstype_config_get(SaNameT *comp_name, AVD_COMP 
> *comp);
> -extern AVD_COMPCS_TYPE *avd_compcstype_create(const SaNameT *dn, const 
> SaImmAttrValuesT_2 **attributes);
> -extern AVD_COMPCS_TYPE *avd_compcstype_get(const SaNameT *dn);
> -extern AVD_COMPCS_TYPE *avd_compcstype_getnext(const SaNameT *dn);
> -extern AVD_COMPCS_TYPE * avd_compcstype_find_match(const SaNameT *csi, const 
> AVD_COMP *comp);
> +extern SaAisErrorT avd_compcstype_config_get(const std::string& comp_name, 
> AVD_COMP *comp);
> +extern AVD_COMPCS_TYPE *avd_compcstype_create(const std::string& dn, const 
> SaImmAttrValuesT_2 **attributes);
> +extern AVD_COMPCS_TYPE *avd_compcstype_get(const std::string& dn);
> +extern AVD_COMPCS_TYPE *avd_compcstype_getnext(const std::string& dn);
> +extern AVD_COMPCS_TYPE * avd_compcstype_find_match(const std::string& csi, 
> const AVD_COMP *comp);
>  extern void avd_compcstype_constructor(void);
> -extern AVD_COMP *avd_comp_get_or_create(const SaNameT *dn);
> -extern AVD_CTCS_TYPE *get_ctcstype(const SaNameT *comptype_name, const 
> SaNameT *cstype_name);
> +extern AVD_COMP *avd_comp_get_or_create(const std::string& dn);
> +bool comp_is_preinstantiable(const AVD_COMP *comp);
> +extern bool is_comp_assigned_any_csi(AVD_COMP *comp);
> +extern SaAisErrorT check_comp_stability(const AVD_COMP*);
> +extern AVD_CTCS_TYPE *get_ctcstype(const std::string& comptype_name, const 
> std::string& cstype_name);
>  extern void comp_ccb_apply_delete_hdlr(struct CcbUtilOperationData *opdata);
>  #endif
> diff --git a/osaf/services/saf/amf/amfd/include/csi.h 
> b/osaf/services/saf/amf/amfd/include/csi.h
> --- a/osaf/services/saf/amf/amfd/include/csi.h
> +++ b/osaf/services/saf/amf/amfd/include/csi.h
> @@ -45,7 +45,7 @@ typedef struct avd_csi_attr_tag {
>  } AVD_CSI_ATTR;
>
>  typedef struct avd_csi_deps_tag {
> -     SaNameT csi_dep_name_value; /* CSI dependency name and value */
> +     std::string csi_dep_name_value; /* CSI dependency name and value */
>       struct avd_csi_deps_tag *csi_dep_next; /* the next CSI dependency in 
> the list */
>  } AVD_CSI_DEPS;
>
> @@ -57,10 +57,10 @@ class AVD_CS_TYPE;
>   */
>  class AVD_CSI {
>   public:
> -  explicit AVD_CSI(const SaNameT* csi_name);
> +  explicit AVD_CSI(const std::string& csi_name);
>
> -  SaNameT name {};
> -  SaNameT saAmfCSType {};
> +  std::string name {};
> +  std::string saAmfCSType {};
>    AVD_CSI_DEPS *saAmfCSIDependencies {}; /* list of all CSI dependencies for 
> this CSI */
>    /* Rank is calculated based on CSI dependency. If no dependency configured 
> then rank will be 1.
>       Else rank will one more than rank of saAmfCSIDependencies. */
> @@ -85,7 +85,7 @@ class AVD_CSI {
>    bool assign_flag = false;   /* Flag used while assigning. to mark this csi 
> has been assigned a Comp
>                           from * current SI being assigned */
>
> -  static AVD_COMP* find_assigned_comp(const SaNameT *cstype, const 
> AVD_SU_SI_REL *sisu, const std::vector<AVD_COMP*> &list_of_comp);
> +  static AVD_COMP* find_assigned_comp(const std::string& cstype, const 
> AVD_SU_SI_REL *sisu, const std::vector<AVD_COMP*> &list_of_comp);
>
>   private:
>    AVD_CSI();
> @@ -98,9 +98,9 @@ extern AmfDb<std::string, AVD_CSI> *csi_
>
>  class AVD_CS_TYPE {
>   public:
> -  explicit AVD_CS_TYPE(const SaNameT *dn);
> -  SaNameT name {};           /* name of the CSType */
> -  SaStringT *saAmfCSAttrName {};
> +  explicit AVD_CS_TYPE(const std::string& dn);
> +  std::string name {};               /* name of the CSType */
> +  std::vector<std::string> saAmfCSAttrName {};
>    AVD_CSI *list_of_csi {};
>
>   private:
> @@ -135,7 +135,7 @@ typedef struct avd_comp_csi_rel_tag {
>   *
>   * @return AVD_CSI*
>   */
> -extern AVD_CSI *avd_csi_get(const SaNameT *csi_name);
> +extern AVD_CSI *avd_csi_get(const std::string& csi_name);
>
>  /**
>   * Create a AVD_COMP_CSI_REL and link it with the specified SUSI & CSI.
> @@ -164,23 +164,23 @@ extern AVD_COMP_CSI_REL *avd_compcsi_cre
>  extern uint32_t avd_compcsi_delete(AVD_CL_CB *cb, struct avd_su_si_rel_tag 
> *susi, bool ckpt);
>
>  extern SaAisErrorT avd_cstype_config_get(void);
> -extern SaAisErrorT avd_csi_config_get(const SaNameT *si_name, AVD_SI *si);
> +extern SaAisErrorT avd_csi_config_get(const std::string& si_name, AVD_SI 
> *si);
>
>  extern void avd_csi_add_csiattr(AVD_CSI *csi, AVD_CSI_ATTR *csiattr);
>  extern void avd_csi_remove_csiattr(AVD_CSI *csi, AVD_CSI_ATTR *attr);
>  extern void avd_csi_constructor(void);
>
> -extern AVD_CS_TYPE *avd_cstype_get(const SaNameT *dn);
> +extern AVD_CS_TYPE *avd_cstype_get(const std::string& dn);
>  extern void avd_cstype_add_csi(AVD_CSI *csi);
>  extern void avd_cstype_remove_csi(AVD_CSI *csi);
>  extern void avd_cstype_constructor(void);
>
> -extern SaAisErrorT avd_csiattr_config_get(const SaNameT *csi_name, AVD_CSI 
> *csi);
> +extern SaAisErrorT avd_csiattr_config_get(const std::string& csi_name, 
> AVD_CSI *csi);
>  extern void avd_csiattr_constructor(void);
>  extern void avd_compcsi_from_csi_and_susi_delete(struct avd_su_si_rel_tag 
> *susi, struct avd_comp_csi_rel_tag *comp_csi, bool ckpt);
>  extern void avd_csi_delete(AVD_CSI *csi);
>  extern void csi_cmplt_delete(AVD_CSI *csi, bool ckpt);
> -extern AVD_CSI *csi_create(const SaNameT *csi_name);
> +extern AVD_CSI *csi_create(const std::string& csi_name);
>  extern bool csi_assignment_validate(AVD_SG *sg);
>  extern SaAisErrorT csi_assign_hdlr(AVD_CSI *csi);
>  extern bool are_sponsor_csis_assigned_in_su(AVD_CSI *dep_csi, AVD_SU *su);
> diff --git a/osaf/services/saf/amf/amfd/include/evt.h 
> b/osaf/services/saf/amf/amfd/include/evt.h
> --- a/osaf/services/saf/amf/amfd/include/evt.h
> +++ b/osaf/services/saf/amf/amfd/include/evt.h
> @@ -73,19 +73,21 @@ typedef enum avd_evt_type {
>       AVD_EVT_MAX
>  } AVD_EVT_TYPE;
>
> +union AVD_EVT_INFO {
> +     AVD_DND_MSG *avnd_msg;
> +     AVD_D2D_MSG *avd_msg;
> +     SaClmNodeIdT node_id;
> +     AVD_TMR tmr;
> +     AVD_EVT_INFO() {new(&tmr) AVD_TMR();}
> +     ~AVD_EVT_INFO() {tmr.~AVD_TMR();}
> +};
> +
>  /* AVD top-level event structure */
> -typedef struct avd_evt_tag {
> +struct AVD_EVT {
>       NCS_IPC_MSG next;
>       AVD_EVT_TYPE rcv_evt;
> -
> -     union {
> -             AVD_DND_MSG *avnd_msg;
> -             AVD_D2D_MSG *avd_msg;
> -             SaClmNodeIdT node_id;
> -             AVD_TMR tmr;
> -     } info;
> -
> -} AVD_EVT;
> +     AVD_EVT_INFO info;
> +};
>
>  #define AVD_EVT_NULL ((AVD_EVT *)0)
>
> diff --git a/osaf/services/saf/amf/amfd/include/imm.h 
> b/osaf/services/saf/amf/amfd/include/imm.h
> --- a/osaf/services/saf/amf/amfd/include/imm.h
> +++ b/osaf/services/saf/amf/amfd/include/imm.h
> @@ -26,6 +26,7 @@
>
>  #include <immutil.h>
>  #include <queue>
> +#include <string>
>
>  typedef void (*AvdImmOiCcbApplyCallbackT) (CcbUtilOperationData_t *opdata);
>  typedef SaAisErrorT (*AvdImmOiCcbCompletedCallbackT) (CcbUtilOperationData_t 
> *opdata);
> @@ -59,7 +60,7 @@ public:
>  class ImmObjCreate : public Job {
>  public:
>       SaImmClassNameT className_;
> -     SaNameT parentName_;
> +     std::string parentName_;
>       const SaImmAttrValuesT_2 **attrValues_;
>       
>       AvdJobDequeueResultT exec(SaImmOiHandleT immOiHandle);
> @@ -70,7 +71,7 @@ public:
>  //
>  class ImmObjUpdate : public Job {
>  public:
> -     SaNameT dn_;
> +     std::string dn;
>       SaImmAttrNameT attributeName_;
>       SaImmValueTypeT attrValueType_;
>       void *value_;
> @@ -83,11 +84,11 @@ public:
>  //
>  class ImmObjDelete : public Job {
>  public:
> -     SaNameT dn_;
> +     std::string dn;
>       
>       AvdJobDequeueResultT exec(SaImmOiHandleT immOiHandle);
>       
> -     ~ImmObjDelete() {}
> +     ~ImmObjDelete();
>  };
>
>  class ImmAdminResponse : public Job {
> @@ -135,7 +136,7 @@ private:
>   * @param ccb_apply_cb
>   * @param ccb_abort_cb
>   */
> -void avd_class_impl_set(const char *className,
> +void avd_class_impl_set(const std::string& className,
>       SaImmOiRtAttrUpdateCallbackT rtattr_cb, 
> SaImmOiAdminOperationCallbackT_2 adminop_cb,
>       AvdImmOiCcbCompletedCallbackT ccb_compl_cb, AvdImmOiCcbApplyCallbackT 
> ccb_apply_cb);
>  /**
> @@ -149,13 +150,13 @@ void avd_class_impl_set(const char *clas
>  SaAisErrorT avd_imm_default_OK_completed_cb(CcbUtilOperationData_t *opdata);
>
>  extern unsigned int avd_imm_config_get(void);
> -extern SaAisErrorT avd_saImmOiRtObjectUpdate_sync(const SaNameT *dn,
> +extern SaAisErrorT avd_saImmOiRtObjectUpdate_sync(const std::string& dn,
>       SaImmAttrNameT attributeName, SaImmValueTypeT attrValueType, void 
> *value);
> -extern void avd_saImmOiRtObjectUpdate(const SaNameT* dn, const char 
> *attributeName,
> +extern void avd_saImmOiRtObjectUpdate(const std::string& dn, const 
> std::string& attributeName,
>       SaImmValueTypeT attrValueType, void* value);
> -extern void avd_saImmOiRtObjectCreate(const char *className,
> -     const SaNameT *parentName, const SaImmAttrValuesT_2 **attrValues);
> -extern void avd_saImmOiRtObjectDelete(const SaNameT* objectName);
> +extern void avd_saImmOiRtObjectCreate(const std::string& lassName,
> +     const std::string& parentName, const SaImmAttrValuesT_2 **attrValues);
> +extern void avd_saImmOiRtObjectDelete(const std::string& objectName);
>
>  extern void avd_imm_reinit_bg(void);
>  extern void avd_saImmOiAdminOperationResult(SaImmOiHandleT immOiHandle,
> 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
> @@ -41,9 +41,10 @@
>  #include <su.h>
>  #include <amf_d2nmsg.h>
>  #include <timer.h>
> -#include <db_template.h>
> +#include <amf_db_template.h>
>  #include <set>
>  #include <vector>
> +#include <string>
>
>  class AVD_SU;
>  struct avd_cluster_tag;
> @@ -76,12 +77,12 @@ class AVD_AMF_NG;
>  class AVD_AVND {
>   public:
>    AVD_AVND();
> -  explicit AVD_AVND(const SaNameT* dn);
> +  explicit AVD_AVND(const std::string& dn);
>    ~AVD_AVND();
>
>    bool is_node_lock();
> -  SaNameT name; /* DN */
> -  char *node_name;    /* RDN value, normally the short host name */
> +  std::string name; /* DN */
> +  std::string 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
> @@ -95,7 +96,7 @@ class AVD_AVND {
>                                * Checkpointing - Sent on node up.
>                                */
>    /************ AMF B.04 **************************************************/
> -  SaNameT saAmfNodeClmNode;
> +  std::string saAmfNodeClmNode;
>    char *saAmfNodeCapacity;
>    SaTimeT saAmfNodeSuFailOverProb;
>    SaUint32T saAmfNodeSuFailoverMax;
> @@ -165,7 +166,7 @@ class AVD_AMF_NG {
>  public:
>       AVD_AMF_NG();
>
> -     SaNameT name;
> +     std::string name;
>       std::set<std::string> saAmfNGNodeList;
>       
>       /* number of element in saAmfNGNodeList */
> @@ -198,16 +199,14 @@ m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(cb, nod
>  }
>
>  /* AMF Node */
> -extern AVD_AVND *avd_node_new(const SaNameT *dn);
> +extern AVD_AVND *avd_node_new(const std::string& dn);
>  extern void avd_node_delete(AVD_AVND *avnd);
>  extern void avd_node_db_add(AVD_AVND *node);
> -extern AVD_AVND *avd_node_get(const SaNameT *node_name);
>  extern AVD_AVND *avd_node_get(const std::string& node_name);
> -extern AVD_AVND *avd_node_getnext(const SaNameT *node_name);
> +extern AVD_AVND *avd_node_getnext(const std::string& node_name);
>  extern uint32_t avd_node_add_nodeid(AVD_AVND *avnd);
>  extern void avd_node_delete_nodeid(AVD_AVND *node);
>  extern AVD_AVND *avd_node_find_nodeid(SaClmNodeIdT node_id);
> -extern AVD_AVND *avd_node_get(const SaNameT *dn);
>  extern SaAisErrorT avd_node_config_get(void);
>  extern void avd_node_state_set(AVD_AVND *node, AVD_AVND_STATE node_state);
>  extern void avd_node_oper_state_set(AVD_AVND *node, SaAmfOperationalStateT 
> oper_state);
> @@ -222,7 +221,7 @@ extern void avd_node_admin_lock_unlock_s
>  extern void node_reset_su_try_inst_counter(const AVD_AVND *node);
>  /* AMF Node group */
>  extern SaAisErrorT avd_ng_config_get(void);
> -extern AVD_AMF_NG *avd_ng_get(const SaNameT *dn);
> +extern AVD_AMF_NG *avd_ng_get(const std::string& dn);
>  extern void avd_ng_constructor(void);
>  extern bool node_in_nodegroup(const std::string& node, const AVD_AMF_NG *ng);
>
> diff --git a/osaf/services/saf/amf/amfd/include/ntf.h 
> b/osaf/services/saf/amf/amfd/include/ntf.h
> --- a/osaf/services/saf/amf/amfd/include/ntf.h
> +++ b/osaf/services/saf/amf/amfd/include/ntf.h
> @@ -45,32 +45,32 @@ typedef enum {
>  } SaAmfExtraNotificationMinorIdT;
>
>  /* Alarms */
> -void avd_send_comp_inst_failed_alarm(const SaNameT *comp_name, const SaNameT 
> *node_name);
> -void avd_send_comp_clean_failed_alarm(const SaNameT *comp_name, const 
> SaNameT *node_name);
> -void avd_send_cluster_reset_alarm(const SaNameT *comp_name);
> -void avd_send_si_unassigned_alarm(const SaNameT *si_name);
> -void avd_send_comp_proxy_status_unproxied_alarm(const SaNameT *comp_name);
> +void avd_send_comp_inst_failed_alarm(const std::string& comp_name, const 
> std::string& node_name);
> +void avd_send_comp_clean_failed_alarm(const std::string& comp_name, const 
> std::string& node_name);
> +void avd_send_cluster_reset_alarm(const std::string& comp_name);
> +void avd_send_si_unassigned_alarm(const std::string& si_name);
> +void avd_send_comp_proxy_status_unproxied_alarm(const std::string& 
> comp_name);
>
>  /* Notifications */
> -void avd_send_admin_state_chg_ntf(const SaNameT *name, 
> SaAmfNotificationMinorIdT minor_id,
> +void avd_send_admin_state_chg_ntf(const std::string& name, 
> SaAmfNotificationMinorIdT minor_id,
>                                       SaAmfAdminStateT old_state, 
> SaAmfAdminStateT new_state);
> -void avd_send_oper_chg_ntf(const SaNameT *name, SaAmfNotificationMinorIdT 
> minor_id,
> +void avd_send_oper_chg_ntf(const std::string& name, 
> SaAmfNotificationMinorIdT minor_id,
>                                       SaAmfOperationalStateT old_state, 
> SaAmfOperationalStateT new_state);
> -void avd_send_su_pres_state_chg_ntf(const SaNameT *su_name, 
> SaAmfPresenceStateT old_state,
> +void avd_send_su_pres_state_chg_ntf(const std::string& su_name, 
> SaAmfPresenceStateT old_state,
>                                       SaAmfPresenceStateT new_state);
> -void avd_send_su_ha_state_chg_ntf(const SaNameT *su_name, const SaNameT 
> *si_name,
> +void avd_send_su_ha_state_chg_ntf(const std::string& su_name, const 
> std::string& si_name,
>                                       SaAmfHAStateT old_state, SaAmfHAStateT 
> new_state);
> -void avd_send_su_ha_readiness_state_chg_ntf(const SaNameT *su_name, const 
> SaNameT *si_name,
> +void avd_send_su_ha_readiness_state_chg_ntf(const std::string& su_name, 
> const std::string& si_name,
>                                       SaAmfHAReadinessStateT old_state, 
> SaAmfHAReadinessStateT new_state);
> -void avd_send_si_assigned_ntf(const SaNameT *si_name, SaAmfAssignmentStateT 
> old_state,
> +void avd_send_si_assigned_ntf(const std::string& si_name, 
> SaAmfAssignmentStateT old_state,
>                                       SaAmfAssignmentStateT new_state);
> -void avd_send_comp_proxy_status_proxied_ntf(const SaNameT *comp_name,
> +void avd_send_comp_proxy_status_proxied_ntf(const std::string& comp_name,
>                                       SaAmfProxyStatusT old_state, 
> SaAmfProxyStatusT new_state);
>
>  /* general functions */
>  SaAisErrorT fill_ntf_header_part(SaNtfNotificationHeaderT 
> *notificationHeader,
>                                  SaNtfEventTypeT eventType,
> -                                SaNameT *comp_name,
> +                                const std::string& comp_name,
>                                  SaUint8T *add_text,
>                                  SaUint16T majorId,
>                                  SaUint16T minorId,
> @@ -79,7 +79,7 @@ SaAisErrorT fill_ntf_header_part(SaNtfNo
>                                  int type); /* add_info 0 --> no,  1--> 
> node_name, 2--> si_name*/
>
>  uint32_t sendAlarmNotificationAvd(AVD_CL_CB *avd_cb,
> -                                     const SaNameT &comp_name,
> +                                     const std::string& comp_name,
>                                       SaUint8T *add_text,
>                                       SaUint16T majorId,
>                                       SaUint16T minorId,
> @@ -89,7 +89,7 @@ uint32_t sendAlarmNotificationAvd(AVD_CL
>                                       int type); /* add_info 0 --> no,  1--> 
> node_name, 2--> si_name*/
>
>  uint32_t sendStateChangeNotificationAvd(AVD_CL_CB *avd_cb,
> -                                           const SaNameT &comp_name,
> +                                           const std::string& comp_name,
>                                             SaUint8T *add_text,
>                                             SaUint16T majorId,
>                                             SaUint16T minorId,
> @@ -101,8 +101,8 @@ uint32_t sendStateChangeNotificationAvd(
>                                             int type); /* add_info 0 --> no,  
> 1--> node_name, 2--> si_name*/
>
>  /* Clearing of alarms */
> -void avd_alarm_clear(const SaNameT *name, SaUint16T minorId, uint32_t 
> probableCause);
> +void avd_alarm_clear(const std::string& name, SaUint16T minorId, uint32_t 
> probableCause);
>
> -void avd_send_error_report_ntf(const SaNameT *name, 
> SaAmfRecommendedRecoveryT recovery);
> +void avd_send_error_report_ntf(const std::string& name, 
> SaAmfRecommendedRecoveryT recovery);
>
>  #endif
> diff --git a/osaf/services/saf/amf/amfd/include/pg.h 
> b/osaf/services/saf/amf/amfd/include/pg.h
> --- a/osaf/services/saf/amf/amfd/include/pg.h
> +++ b/osaf/services/saf/amf/amfd/include/pg.h
> @@ -49,7 +49,7 @@ typedef struct avd_pg_node_csi {
>       AVD_CSI *csi;           /* ptr to the csi */
>  } AVD_PG_NODE_CSI;
>
> -void avd_pg_trk_act_evh(AVD_CL_CB *, struct avd_evt_tag *);
> +void avd_pg_trk_act_evh(AVD_CL_CB *, struct AVD_EVT *);
>
>  uint32_t avd_pg_susi_chg_prc(AVD_CL_CB *, AVD_SU_SI_REL *);
>  uint32_t avd_pg_compcsi_chg_prc(AVD_CL_CB *, struct avd_comp_csi_rel_tag *, 
> bool);
> 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
> @@ -39,8 +39,8 @@
>
>  typedef void (*AVD_EVT_HDLR) (AVD_CL_CB *, AVD_EVT *);
>
> -void avd_su_oper_state_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> -void avd_su_si_assign_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> +void avd_su_oper_state_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
> +void avd_su_si_assign_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
>  uint32_t avd_new_assgn_susi(AVD_CL_CB *cb, AVD_SU *su, AVD_SI *si,
>                                 SaAmfHAStateT role, bool ckpt, AVD_SU_SI_REL 
> **ret_ptr);
>  void su_try_repair(const AVD_SU *su);
> @@ -63,29 +63,29 @@ uint32_t avd_count_node_up(AVD_CL_CB *cb
>  uint32_t avd_evt_queue_count(AVD_CL_CB *cb);
>  uint32_t avd_count_sync_node_size(AVD_CL_CB *cb);
>  void avd_process_state_info_queue(AVD_CL_CB *cb);
> -void avd_node_up_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> -void avd_reg_su_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> -void avd_oper_req_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> -void avd_mds_avnd_up_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> +void avd_node_up_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
> +void avd_reg_su_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
> +void avd_oper_req_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
> +void avd_mds_avnd_up_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
>  void avd_ack_nack_evh(AVD_CL_CB *cb, AVD_EVT *evt);
>  void avd_comp_validation_evh(AVD_CL_CB *cb, AVD_EVT *evt);
>  void avd_fail_over_event(AVD_CL_CB *cb);
> -void avd_mds_avnd_down_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> +void avd_mds_avnd_down_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
>  void avd_data_update_req_evh(AVD_CL_CB *cb, AVD_EVT *evt);
>  void avd_role_switch_ncs_su_evh(AVD_CL_CB *cb, AVD_EVT *evt);
>  void avd_mds_qsd_role_evh(AVD_CL_CB *cb, AVD_EVT *evt);
>  void avd_node_down_appl_susi_failover(AVD_CL_CB *cb, AVD_AVND *avnd);
>  void avd_node_down_mw_susi_failover(AVD_CL_CB *cb, AVD_AVND *avnd);
>  void avd_node_down_func(AVD_CL_CB *cb, AVD_AVND *avnd);
> -void avd_nd_sisu_state_info_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> -void avd_nd_compcsi_state_info_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> +void avd_nd_sisu_state_info_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
> +void avd_nd_compcsi_state_info_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
>  uint32_t avd_node_down(AVD_CL_CB *cb, SaClmNodeIdT node_id);
>  AVD_AVND *avd_msg_sanity_chk(AVD_EVT *evt, SaClmNodeIdT node_id,
>       AVSV_DND_MSG_TYPE msg_typ, uint32_t msg_id);
>  void avd_nd_ncs_su_assigned(AVD_CL_CB *cb, AVD_AVND *avnd);
>  void avd_nd_ncs_su_failed(AVD_CL_CB *cb, AVD_AVND *avnd);
> -void avd_rcv_hb_d_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> -void avd_process_hb_event(AVD_CL_CB *cb_now, struct avd_evt_tag *evt);
> +void avd_rcv_hb_d_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
> +void avd_process_hb_event(AVD_CL_CB *cb_now, struct AVD_EVT *evt);
>  extern void avd_node_mark_absent(AVD_AVND *node);
>  extern void avd_tmr_snd_hb_evh(AVD_CL_CB *cb, AVD_EVT *evt);
>  extern void avd_node_failover(AVD_AVND *node);
> 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
> @@ -40,7 +40,6 @@
>  #include <sgtype.h>
>  #include <amf_defs.h>
>  #include <amf_d2nmsg.h>
> -#include "db_template.h"
>  #include "node.h"
>  #include <list>
>
> @@ -70,14 +69,14 @@ public:
>       AVD_SG();
>       virtual ~AVD_SG() {};
>
> -     SaNameT name;           /* the service group DN used as the index.
> +     std::string name;               /* the service group DN used as the 
> index.
>                                * Checkpointing - Sent as a one time update.
>                                */
>
>       bool saAmfSGAutoRepair_configured; /* True when user configures 
> saAmfSGAutoRepair else false */
>     /******************** B.04 model 
> *************************************************/
> -     SaNameT saAmfSGType;    /* Network order. */
> -     SaNameT saAmfSGSuHostNodeGroup; /* Network order. */
> +     std::string saAmfSGType;        /* Network order. */
> +     std::string saAmfSGSuHostNodeGroup;     /* Network order. */
>       SaBoolT saAmfSGAutoRepair;
>       SaBoolT saAmfSGAutoAdjust;
>
> @@ -578,7 +577,7 @@ private:
>  extern void avd_sg_delete(AVD_SG *sg);
>  extern void avd_sg_db_add(AVD_SG *sg);
>  extern void avd_sg_db_remove(AVD_SG *sg);
> -extern SaAisErrorT avd_sg_config_get(const SaNameT *app_dn, AVD_APP *app);
> +extern SaAisErrorT avd_sg_config_get(const std::string& app_dn, AVD_APP 
> *app);
>  extern void avd_sg_add_su(AVD_SU *su);
>  extern void avd_sg_remove_su(AVD_SU *su);
>  extern void avd_sg_constructor(void);
> diff --git a/osaf/services/saf/amf/amfd/include/sgtype.h 
> b/osaf/services/saf/amf/amfd/include/sgtype.h
> --- a/osaf/services/saf/amf/amfd/include/sgtype.h
> +++ b/osaf/services/saf/amf/amfd/include/sgtype.h
> @@ -26,18 +26,18 @@
>  #define AVD_SGTYPE_H
>
>  #include <saAmf.h>
> -#include <include/db_template.h>
> +#include <amf_db_template.h>
>  #include <vector>
>
>  class AVD_SG;
>
>  class AVD_AMF_SG_TYPE {
>   public:
> -  explicit AVD_AMF_SG_TYPE(const SaNameT *dn);
> -  SaNameT name {};
> +  explicit AVD_AMF_SG_TYPE(const std::string& dn);
> +  std::string name {};
>    bool saAmfSgtDefAutoRepair_configured {}; /* True when user configures 
> saAmfSGDefAutoRepair else false */
>     /******************** B.04 model 
> *************************************************/
> -  SaNameT *saAmfSGtValidSuTypes {};  /* array of DNs, size in number_su_type 
> */
> +  std::vector<std::string> saAmfSGtValidSuTypes {};  /* array of DNs, size 
> in number_su_type */
>    SaAmfRedundancyModelT saAmfSgtRedundancyModel {};
>    SaBoolT saAmfSgtDefAutoRepair {};
>    SaBoolT saAmfSgtDefAutoAdjust {};
> @@ -61,7 +61,7 @@ class AVD_AMF_SG_TYPE {
>
>  extern AmfDb<std::string, AVD_AMF_SG_TYPE> *sgtype_db;
>  SaAisErrorT avd_sgtype_config_get(void);
> -AVD_AMF_SG_TYPE *avd_sgtype_get(const SaNameT *dn);
> +AVD_AMF_SG_TYPE *avd_sgtype_get(const std::string& dn);
>  void avd_sgtype_add_sg(AVD_SG *sg);
>  void avd_sgtype_remove_sg(AVD_SG *sg);
>  void avd_sgtype_constructor(void);
> diff --git a/osaf/services/saf/amf/amfd/include/si.h 
> b/osaf/services/saf/amf/amfd/include/si.h
> --- a/osaf/services/saf/amf/amfd/include/si.h
> +++ b/osaf/services/saf/amf/amfd/include/si.h
> @@ -71,11 +71,11 @@ typedef enum {
>  class AVD_SI {
>  public:
>       AVD_SI();
> -     SaNameT name;
> +     std::string name;
>
>       /******************** B.04 model 
> *************************************************/
> -     SaNameT saAmfSvcType;
> -     SaNameT saAmfSIProtectedbySG;
> +     std::string saAmfSvcType;
> +     std::string saAmfSIProtectedbySG;
>       uint32_t saAmfSIRank;
>       std::vector<std::string> saAmfSIActiveWeight;
>       std::vector<std::string> saAmfSIStandbyWeight;
> @@ -120,7 +120,7 @@ public:
>
>       void set_admin_state(SaAmfAdminStateT state);
>
> -     void add_rankedsu(const SaNameT *suname, uint32_t saAmfRank);
> +     void add_rankedsu(const std::string& suname, uint32_t saAmfRank);
>       void remove_rankedsu(const std::string &suname);
>       
>       void set_si_switch(AVD_CL_CB *cb, const SaToggleState state);
> @@ -154,10 +154,10 @@ private:
>  extern AmfDb<std::string, AVD_SI> *si_db;
>  #define AVD_SI_NULL ((AVD_SI *)0)
>
> -extern AVD_SI *avd_si_new(const SaNameT *dn);
> +extern AVD_SI *avd_si_new(const std::string& dn);
>  extern void avd_si_delete(AVD_SI *si);
>  extern void avd_si_db_add(AVD_SI *si);
> -extern AVD_SI *avd_si_get(const SaNameT *si_name);
> +extern AVD_SI *avd_si_get(const std::string& si_name);
>  extern SaAisErrorT avd_si_config_get(AVD_APP *app);
>  extern void avd_si_constructor(void);
>
> diff --git a/osaf/services/saf/amf/amfd/include/si_dep.h 
> b/osaf/services/saf/amf/amfd/include/si_dep.h
> --- a/osaf/services/saf/amf/amfd/include/si_dep.h
> +++ b/osaf/services/saf/amf/amfd/include/si_dep.h
> @@ -40,18 +40,18 @@
>   */
>  typedef struct avd_si_dep_name_list {
>       /* SI name */
> -     SaNameT si_name;
> +     std::string si_name;
>
>       struct avd_si_dep_name_list *next;
>  } AVD_SI_DEP_NAME_LIST;
>
>  class AVD_SI_DEP {
>  public:
> -        SaNameT name;
> +        std::string name;
>          AVD_SI *spons_si;
> -        SaNameT spons_name;
> +        std::string spons_name;
>          AVD_SI *dep_si;
> -        SaNameT dep_name;
> +        std::string dep_name;
>          SaTimeT saAmfToleranceTime;
>          AVD_TMR si_dep_timer;
>  };
> @@ -69,9 +69,9 @@ typedef struct avd_spons_si_tag {
>  extern AmfDb<std::pair<std::string, std::string>, AVD_SI_DEP> *sidep_db;
>  void sidep_spons_list_del(AVD_CL_CB *cb, AVD_SI_DEP *si_dep_rec);
>  AVD_SI_DEP *avd_sidep_find(AVD_SI *spons_si, AVD_SI *dep_si);
> -void avd_sidep_tol_tmr_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> -void avd_sidep_assign_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> -void avd_sidep_unassign_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt);
> +void avd_sidep_tol_tmr_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
> +void avd_sidep_assign_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
> +void avd_sidep_unassign_evh(AVD_CL_CB *cb, struct AVD_EVT *evt);
>  void sidep_si_screen_si_dependencies(AVD_SI *si);
>  void avd_sidep_update_si_dep_state_for_all_sis(AVD_SG *sg);
>  void sidep_stop_tol_timer(AVD_CL_CB *cb, AVD_SI *si);
> @@ -93,6 +93,6 @@ extern void sidep_update_si_self_dep_sta
>  extern void sidep_update_dependents_states(AVD_SI *si);
>  extern void sidep_process_ready_to_unassign_depstate(AVD_SI *dep_si);
>  extern void avd_sidep_sg_take_action(AVD_SG *sg);
> -extern void get_dependent_si_list(const SaNameT &spons_si_name, 
> std::list<AVD_SI*>& depsi_list);
> +extern void get_dependent_si_list(const std::string &spons_si_name, 
> std::list<AVD_SI*>& depsi_list);
>  extern void avd_sidep_activ_amfd_tol_timer_expiry(AVD_SI *spons_si, AVD_SI 
> *dep_si);
>  #endif
> 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
> @@ -32,7 +32,7 @@
>  #include <amf_defs.h>
>  #include <msg.h>
>  #include <comp.h>
> -#include "include/db_template.h"
> +#include <amf_db_template.h>
>
>  class AVD_SG;
>  class AVD_SUTYPE;
> @@ -44,17 +44,17 @@ class AVD_SUTYPE;
>  class AVD_SU {
>   public:
>               AVD_SU();
> -     explicit AVD_SU(const SaNameT *dn);
> +     explicit AVD_SU(const std::string& dn);
>       ~AVD_SU() {};
>
> -     SaNameT name;
> -     SaNameT saAmfSUType;
> +     std::string name;
> +     std::string saAmfSUType;
>       uint32_t saAmfSURank;
> -     SaNameT saAmfSUHostNodeOrNodeGroup;
> +     std::string saAmfSUHostNodeOrNodeGroup;
>       bool saAmfSUFailover;
>       /* true when user has configured saAmfSUFailover */
>       bool saAmfSUFailover_configured;
> -     SaNameT saAmfSUMaintenanceCampaign;
> +     std::string saAmfSUMaintenanceCampaign;
>
>       /* runtime attributes */
>       SaBoolT saAmfSUPreInstantiable;  // TODO(hafe) change to bool
> @@ -62,7 +62,7 @@ class AVD_SU {
>       SaAmfAdminStateT saAmfSUAdminState;
>       SaAmfReadinessStateT saAmfSuReadinessState;
>       SaAmfPresenceStateT saAmfSUPresenceState;
> -     SaNameT saAmfSUHostedByNode;
> +     std::string saAmfSUHostedByNode;
>       SaUint32T saAmfSUNumCurrActiveSIs;
>       SaUint32T saAmfSUNumCurrStandbySIs;
>       SaUint32T saAmfSURestartCount;
> @@ -120,7 +120,7 @@ class AVD_SU {
>       bool is_in_service(void);
>       bool is_instantiable(void);
>       void reset_all_comps_assign_flag();
> -     AVD_COMP *find_unassigned_comp_that_provides_cstype(const SaNameT 
> *cstype);
> +     AVD_COMP *find_unassigned_comp_that_provides_cstype(const std::string& 
> cstype);
>       void disable_comps(SaAisErrorT result);
>       void complete_admin_op(SaAisErrorT result);
>       void unlock(SaImmOiHandleT immoi_handle, SaInvocationT invocation);
> @@ -167,7 +167,7 @@ extern AmfDb<std::string, AVD_SU> *su_db
>   *
>   * @return SaAisErrorT
>   */
> -extern SaAisErrorT avd_su_config_get(const SaNameT *sg_name, AVD_SG *sg);
> +extern SaAisErrorT avd_su_config_get(const std::string& sg_name, AVD_SG *sg);
>
>  /**
>   * Class constructor, must be called before any other function
> diff --git a/osaf/services/saf/amf/amfd/include/susi.h 
> b/osaf/services/saf/amf/amfd/include/susi.h
> --- a/osaf/services/saf/amf/amfd/include/susi.h
> +++ b/osaf/services/saf/amf/amfd/include/susi.h
> @@ -67,14 +67,14 @@ typedef struct avd_su_si_rel_tag {
>       struct avd_su_si_rel_tag *si_next;      /* The next element in the list 
> w.r.t to SI */
>       /* To check which comp-csi is being added/removed. */
>       SaBoolT csi_add_rem;
> -     SaNameT comp_name;
> -     SaNameT csi_name;
> +     std::string comp_name;
> +     std::string csi_name;
>  } AVD_SU_SI_REL;
>
>  /* SusperSiRank table index structure */
>  typedef struct avd_sus_per_si_rank_index_tag {
>
> -     SaNameT si_name;
> +     std::string si_name;
>       uint32_t su_rank;       /* The rank of the SU */
>
>  } AVD_SUS_PER_SI_RANK_INDX;
> @@ -84,7 +84,7 @@ typedef struct avd_sus_per_si_rank_index
>   */
>  typedef struct avd_sus_per_si_rank_tag {
>       AVD_SUS_PER_SI_RANK_INDX indx;  /* Table index */
> -     SaNameT su_name;        /* name of the SU as SaNameT */
> +     std::string su_name;    /* name of the SU as std::string */
>       AVD_SI *sus_per_si_rank_on_si;
>       struct avd_sus_per_si_rank_tag *sus_per_si_rank_list_si_next;
>
> @@ -137,12 +137,12 @@ extern AmfDb<std::pair<std::string, uint
>  }
>
>  AVD_SU_SI_REL *avd_susi_create(AVD_CL_CB *cb, AVD_SI *si, AVD_SU *su, 
> SaAmfHAStateT state, bool ckpt);
> -AVD_SU_SI_REL *avd_susi_find(AVD_CL_CB *cb, const SaNameT *su_name, const 
> SaNameT *si_name);
> +AVD_SU_SI_REL *avd_susi_find(AVD_CL_CB *cb, const std::string& su_name, 
> const std::string& si_name);
>  extern void avd_susi_update(AVD_SU_SI_REL *susi, SaAmfHAStateT ha_state);
>
> -AVD_SU_SI_REL *avd_su_susi_find(AVD_CL_CB *cb, AVD_SU *su, const SaNameT 
> *si_name);
> +AVD_SU_SI_REL *avd_su_susi_find(AVD_CL_CB *cb, AVD_SU *su, const 
> std::string& si_name);
>  uint32_t avd_susi_delete(AVD_CL_CB *cb, AVD_SU_SI_REL *susi, bool ckpt);
> -extern SaAisErrorT avd_sirankedsu_config_get(SaNameT *si_name, AVD_SI *si);
> +extern SaAisErrorT avd_sirankedsu_config_get(const std::string& si_name, 
> AVD_SI *si);
>  extern void avd_sirankedsu_constructor(void);
>  extern void avd_susi_ha_state_set(AVD_SU_SI_REL *susi, SaAmfHAStateT 
> ha_state);
>  uint32_t avd_gen_su_ha_state_changed_ntf(AVD_CL_CB *avd_cb, struct 
> avd_su_si_rel_tag *susi);
> diff --git a/osaf/services/saf/amf/amfd/include/sutcomptype.h 
> b/osaf/services/saf/amf/amfd/include/sutcomptype.h
> --- a/osaf/services/saf/amf/amfd/include/sutcomptype.h
> +++ b/osaf/services/saf/amf/amfd/include/sutcomptype.h
> @@ -29,14 +29,14 @@
>  #include "sutype.h"
>
>  typedef struct {
> -     SaNameT name;
> +     std::string name;
>       SaUint32T saAmfSutMaxNumComponents;
>       SaUint32T saAmfSutMinNumComponents;
>       SaUint32T curr_num_components;
>  } AVD_SUTCOMP_TYPE;
>  extern AmfDb<std::string, AVD_SUTCOMP_TYPE> *sutcomptype_db;
>
> -SaAisErrorT avd_sutcomptype_config_get(SaNameT *sutype_name, AVD_SUTYPE 
> *sut);
> +SaAisErrorT avd_sutcomptype_config_get(const std::string& sutype_name, 
> AVD_SUTYPE *sut);
>  void avd_sutcomptype_constructor(void);
>
>  #endif
> diff --git a/osaf/services/saf/amf/amfd/include/sutype.h 
> b/osaf/services/saf/amf/amfd/include/sutype.h
> --- a/osaf/services/saf/amf/amfd/include/sutype.h
> +++ b/osaf/services/saf/amf/amfd/include/sutype.h
> @@ -24,11 +24,11 @@
>
>  class AVD_SUTYPE {
>   public:
> -  explicit AVD_SUTYPE(const SaNameT *dn);
> -  SaNameT name {};
> +  explicit AVD_SUTYPE(const std::string& dn);
> +  std::string name {};
>    SaUint32T saAmfSutIsExternal {};
>    SaUint32T saAmfSutDefSUFailover {};
> -  SaNameT *saAmfSutProvidesSvcTypes {}; /* array of DNs, size in 
> number_svc_types */
> +  std::vector<std::string> saAmfSutProvidesSvcTypes {}; /* array of DNs, 
> size in number_svc_types */
>    unsigned int number_svc_types {};  /* size of array 
> saAmfSutProvidesSvcTypes */
>    std::vector<AVD_SU*> list_of_su {};
>   private:
> diff --git a/osaf/services/saf/amf/amfd/include/svctype.h 
> b/osaf/services/saf/amf/amfd/include/svctype.h
> --- a/osaf/services/saf/amf/amfd/include/svctype.h
> +++ b/osaf/services/saf/amf/amfd/include/svctype.h
> @@ -20,8 +20,8 @@
>
>  class AVD_SVC_TYPE {
>   public:
> -  explicit AVD_SVC_TYPE(const SaNameT *dn);
> -  SaNameT name {};
> +  explicit AVD_SVC_TYPE(const std::string& dn);
> +  std::string name {};
>    char **saAmfSvcDefActiveWeight {};
>    char **saAmfSvcDefStandbyWeight {};
>    std::vector<AVD_SI*> list_of_si {};
> diff --git a/osaf/services/saf/amf/amfd/include/svctypecstype.h 
> b/osaf/services/saf/amf/amfd/include/svctypecstype.h
> --- a/osaf/services/saf/amf/amfd/include/svctypecstype.h
> +++ b/osaf/services/saf/amf/amfd/include/svctypecstype.h
> @@ -18,9 +18,9 @@
>
>  class AVD_SVC_TYPE_CS_TYPE {
>   public:
> -  explicit AVD_SVC_TYPE_CS_TYPE(const SaNameT *dn);
> +  explicit AVD_SVC_TYPE_CS_TYPE(const std::string& dn);
>
> -  SaNameT name {};
> +  std::string name {};
>    SaUint32T saAmfSvctMaxNumCSIs {};
>
>    SaUint32T curr_num_csis {};
> @@ -34,7 +34,7 @@ class AVD_SVC_TYPE_CS_TYPE {
>    void operator=(const AVD_SVC_TYPE_CS_TYPE&);
>  };
>
> -SaAisErrorT avd_svctypecstypes_config_get(SaNameT *svctype_name);
> +SaAisErrorT avd_svctypecstypes_config_get(const std::string& svctype_name);
>  void avd_svctypecstypes_constructor(void);
>
>  extern AmfDb<std::string, AVD_SVC_TYPE_CS_TYPE> *svctypecstypes_db;
> diff --git a/osaf/services/saf/amf/amfd/include/timer.h 
> b/osaf/services/saf/amf/amfd/include/timer.h
> --- a/osaf/services/saf/amf/amfd/include/timer.h
> +++ b/osaf/services/saf/amf/amfd/include/timer.h
> @@ -35,6 +35,7 @@
>
>  #include <saflog.h>
>  #include <ncssysf_tmr.h>
> +#include <string>
>
>  /* timer type enums */
>  typedef enum avd_tmr_type {
> @@ -53,8 +54,8 @@ typedef struct avd_tmr_tag {
>       tmr_t tmr_id;
>       AVD_TMR_TYPE type;
>       SaClmNodeIdT node_id;
> -     SaNameT spons_si_name;
> -     SaNameT dep_si_name;
> +     std::string spons_si_name;
> +     std::string dep_si_name;
>       bool is_active;
>  } AVD_TMR;
>
> 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
> @@ -42,10 +42,11 @@
>  #include <immutil.h>
>  #include "msg.h"
>  #include "role.h"
> -
> +#include "amf_db_template.h"
>  class AVD_SU;
>
>  extern const SaNameT *amfSvcUsrName;
> +extern SaNameT _amfSvcUsrName;
>  extern const char *avd_adm_state_name[];
>  extern const char *avd_pres_state_name[];
>  extern const char *avd_oper_state_name[];
> @@ -63,7 +64,9 @@ class AVD_COMP;
>  struct avd_comp_csi_rel_tag;
>  class AVD_CSI;
>
> -int get_child_dn_from_ass_dn(const SaNameT *ass_dn, SaNameT *child_dn);
> +void avsv_sanamet_init(const std::string& haystack, std::string& dn, const 
> char *needle);
> +int get_child_dn_from_ass_dn(const std::string& ass_dn, std::string& 
> child_dn);
> +int get_parent_dn_from_ass_dn(const std::string& ass_dn, std::string& 
> parent_dn);
>  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, ...);
> @@ -83,17 +86,17 @@ uint32_t avd_snd_set_leds_msg(struct cl_
>  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 *, AVD_AVND *, struct 
> avd_comp_csi_rel_tag *,
> -                               SaAmfProtectionGroupChangesT, SaNameT *);
> +                               SaAmfProtectionGroupChangesT, const 
> std::string&);
>  uint32_t avd_snd_comp_validation_resp(struct cl_cb_tag *cb, AVD_AVND *avnd,
>                                           AVD_COMP *comp_ptr, AVD_DND_MSG 
> *n2d_msg);
>  std::string to_string(const SaNameT &s);
>  extern int avd_admin_state_is_valid(SaAmfAdminStateT state, const 
> CcbUtilOperationData_t *opdata);
> -extern SaAisErrorT avd_object_name_create(SaNameT *rdn_attr_value, SaNameT 
> *parentName, SaNameT *object_name);
> +extern SaAisErrorT avd_object_name_create(const std::string& rdn_attr_value, 
> const std::string& parentName, const std::string& object_name);
>  int amfd_file_dump(const char* filename);
> -extern int avd_admin_op_msg_snd(const SaNameT *dn, AVSV_AMF_CLASS_ID 
> class_id,
> +extern int avd_admin_op_msg_snd(const std::string& dn, AVSV_AMF_CLASS_ID 
> class_id,
>       SaAmfAdminOperationIdT opId, AVD_AVND *node);
>  extern void d2n_msg_free(AVSV_DND_MSG *msg);
> -extern const char* avd_getparent(const char* dn);
> -extern bool object_exist_in_imm(const SaNameT *dn);
> +extern std::string avd_getparent(const std::string& dn);
> +extern bool object_exist_in_imm(const std::string& dn);
>  extern const char *admin_op_name(SaAmfAdminOperationIdT opid);
>  #endif
>

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to