ack, code review only/Thanks HansN

On 01/25/2016 05:35 AM, Gary Lee wrote:
>   osaf/services/saf/amf/amfd/ndfsm.cc        |   12 +-
>   osaf/services/saf/amf/amfd/ndproc.cc       |   32 +--
>   osaf/services/saf/amf/amfd/node.cc         |  227 
> +++++++++++++---------------
>   osaf/services/saf/amf/amfd/nodegroup.cc    |  215 ++++++++++++++------------
>   osaf/services/saf/amf/amfd/nodeswbundle.cc |   46 +++--
>   osaf/services/saf/amf/amfd/ntf.cc          |  114 +++++++------
>   osaf/services/saf/amf/amfd/pg.cc           |    2 +-
>   7 files changed, 330 insertions(+), 318 deletions(-)
>
>
> diff --git a/osaf/services/saf/amf/amfd/ndfsm.cc 
> b/osaf/services/saf/amf/amfd/ndfsm.cc
> --- a/osaf/services/saf/amf/amfd/ndfsm.cc
> +++ b/osaf/services/saf/amf/amfd/ndfsm.cc
> @@ -153,7 +153,7 @@
>               goto done;
>       }
>   
> -     LOG_NO("Node '%s' joined the cluster", avnd->node_name);
> +     LOG_NO("Node '%s' joined the cluster", avnd->node_name.c_str());
>   
>       avd_node_state_set(avnd, AVD_AVND_STATE_NO_CONFIG);
>   
> @@ -545,8 +545,8 @@
>                                       continue;
>   
>                               if (avd_snd_susi_msg(cb, su_ptr, rel_ptr, 
> static_cast<AVSV_SUSI_ACT>(rel_ptr->fsm), false, nullptr) != 
> NCSCC_RC_SUCCESS) {
> -                                     LOG_ER("%s:%u: %s (%u)", __FILE__, 
> __LINE__, su_ptr->name.value,
> -                                                                          
> su_ptr->name.length);
> +                                     LOG_ER("%s:%u: %s (%zu)", __FILE__, 
> __LINE__, su_ptr->name.c_str(),
> +                                                                          
> su_ptr->name.length());
>                               }
>                       }
>               }
> @@ -581,8 +581,8 @@
>                                       continue;
>   
>                               if (avd_snd_susi_msg(cb, su_ptr, rel_ptr, 
> static_cast<AVSV_SUSI_ACT>(rel_ptr->fsm), false, nullptr) != 
> NCSCC_RC_SUCCESS) {
> -                                     LOG_ER("%s:%u: %s (%u)", __FILE__, 
> __LINE__, su_ptr->name.value,
> -                                                                          
> su_ptr->name.length);
> +                                     LOG_ER("%s:%u: %s (%zu)", __FILE__, 
> __LINE__, su_ptr->name.c_str(),
> +                                                                          
> su_ptr->name.length());
>                               }
>                       }
>               }
> @@ -643,7 +643,7 @@
>       avd_node_oper_state_set(node, SA_AMF_OPERATIONAL_DISABLED);
>       avd_node_state_set(node, AVD_AVND_STATE_ABSENT);
>   
> -     LOG_NO("Node '%s' left the cluster", node->node_name);
> +     LOG_NO("Node '%s' left the cluster", node->node_name.c_str());
>   
>       node->adest = 0;
>       node->rcv_msg_id = 0;
> diff --git a/osaf/services/saf/amf/amfd/ndproc.cc 
> b/osaf/services/saf/amf/amfd/ndproc.cc
> --- a/osaf/services/saf/amf/amfd/ndproc.cc
> +++ b/osaf/services/saf/amf/amfd/ndproc.cc
> @@ -414,7 +414,7 @@
>       } else {
>               report_admin_op_error(avd_cb->immOiHandle, 
> su->pend_cbk.invocation,
>                               rc, &su->pend_cbk, "Couldn't restart su '%s'",
> -                             su->name.value);
> +                             su->name.c_str());
>       }
>       su->pend_cbk.admin_oper = static_cast<SaAmfAdminOperationIdT>(0);
>       su->pend_cbk.invocation = 0;
> @@ -442,7 +442,7 @@
>                       su->pend_cbk.admin_oper = 
> static_cast<SaAmfAdminOperationIdT>(0);
>               } else if (pres == SA_AMF_PRESENCE_TERMINATION_FAILED) {
>                       report_admin_op_error(cb->immOiHandle, 
> su->pend_cbk.invocation, SA_AIS_ERR_REPAIR_PENDING,
> -                                     &su->pend_cbk, "SU '%s' moved to 
> 'termination failed' state", su->name.value);
> +                                     &su->pend_cbk, "SU '%s' moved to 
> 'termination failed' state", su->name.c_str());
>               }
>               break;
>       case SA_AMF_ADMIN_UNLOCK_INSTANTIATION:
> @@ -454,7 +454,7 @@
>                          (pres == SA_AMF_PRESENCE_TERMINATION_FAILED)) {
>                       report_admin_op_error(cb->immOiHandle, 
> su->pend_cbk.invocation, SA_AIS_ERR_REPAIR_PENDING,
>                                       &su->pend_cbk, "SU '%s' moved to 
> 'instantiation/termination failed' state",
> -                                     su->name.value);
> +                                     su->name.c_str());
>               }
>               break;
>       case SA_AMF_ADMIN_UNLOCK:
> @@ -464,7 +464,7 @@
>                                       SA_AIS_ERR_REPAIR_PENDING,
>                                       &su->pend_cbk,
>                                       "SU '%s' moved to 'termination failed' 
> state",
> -                                     su->name.value);
> +                                     su->name.c_str());
>               }
>               break;
>       case SA_AMF_ADMIN_REPAIRED:
> @@ -479,7 +479,7 @@
>               } else {
>                       report_admin_op_error(cb->immOiHandle, 
> su->pend_cbk.invocation, SA_AIS_ERR_BAD_OPERATION,
>                                       &su->pend_cbk, "Bad presence state %u 
> after '%s' adm repaired", pres,
> -                                     su->name.value);
> +                                     su->name.c_str());
>               }
>               break;
>       case SA_AMF_ADMIN_RESTART:
> @@ -520,7 +520,7 @@
>               } else if (pres == SA_AMF_PRESENCE_TERMINATION_FAILED) {
>                       report_admin_op_error(cb->immOiHandle, 
> su->su_on_node->admin_node_pend_cbk.invocation,
>                                       SA_AIS_ERR_REPAIR_PENDING, 
> &su->su_on_node->admin_node_pend_cbk,
> -                                     "SU '%s' moved to 'termination failed' 
> state", su->name.value);
> +                                     "SU '%s' moved to 'termination failed' 
> state", su->name.c_str());
>                       su->su_on_node->su_cnt_admin_oper = 
> static_cast<SaAmfAdminOperationIdT>(0);
>               }               /* else do nothing 
> ::SA_AMF_PRESENCE_TERMINATING update is valid */
>               break;
> @@ -540,7 +540,7 @@
>                               (pres == SA_AMF_PRESENCE_INSTANTIATION_FAILED)) 
> {
>                       report_admin_op_error(cb->immOiHandle, 
> su->su_on_node->admin_node_pend_cbk.invocation,
>                                       SA_AIS_ERR_REPAIR_PENDING, 
> &su->su_on_node->admin_node_pend_cbk,
> -                                     "SU '%s' moved to 
> 'instantiation/termination failed' state", su->name.value);
> +                                     "SU '%s' moved to 
> 'instantiation/termination failed' state", su->name.c_str());
>                       su->su_on_node->su_cnt_admin_oper = 
> static_cast<SaAmfAdminOperationIdT>(0);
>               }               /* else do nothing :: 
> SA_AMF_PRESENCE_INSTANTIATING update is valid */
>               break;
> @@ -616,7 +616,7 @@
>       if(su == nullptr)
>               goto node_walk;
>   
> -     TRACE("SU '%s', SUPresenceState '%u'", su->name.value, 
> su->saAmfSUPresenceState);
> +     TRACE("SU '%s', SUPresenceState '%u'", su->name.c_str(), 
> su->saAmfSUPresenceState);
>       if (((su->saAmfSUOperState == SA_AMF_OPERATIONAL_ENABLED) && 
> (su->saAmfSUPresenceState ==
>                                       SA_AMF_PRESENCE_INSTANTIATED)) ||
>                       (su->saAmfSUOperState == SA_AMF_OPERATIONAL_DISABLED)) {
> @@ -630,7 +630,7 @@
>       for (std::map<std::string, AVD_AVND *>::const_iterator it = 
> node_name_db->begin();
>                       it != node_name_db->end(); it++) {
>               node = it->second;
> -             TRACE("node name '%s', Oper'%u'", node->name.value, 
> node->saAmfNodeOperState);
> +             TRACE("node name '%s', Oper'%u'", node->name.c_str(), 
> node->saAmfNodeOperState);
>               if (node->saAmfNodeOperState == SA_AMF_OPERATIONAL_ENABLED)
>               {
>                       for (const auto& su_ptr : node->list_of_su) {
> @@ -822,11 +822,9 @@
>                               if 
> (n2d_msg->msg_info.n2d_data_req.param_info.value_len ==
>                                   strlen((char 
> *)n2d_msg->msg_info.n2d_data_req.param_info.value)) {
>                                       l_val = 
> n2d_msg->msg_info.n2d_data_req.param_info.value_len;
> -                                     comp->saAmfCompCurrProxyName.length = 
> l_val;
> -
> -                                     strncpy((char 
> *)comp->saAmfCompCurrProxyName.value,
> -                                             (char 
> *)n2d_msg->msg_info.n2d_data_req.param_info.value,
> -                                             SA_MAX_NAME_LENGTH - 1);
> +                                     comp->saAmfCompCurrProxyName = 
> std::string(
> +                                             
> static_cast<char*>(n2d_msg->msg_info.n2d_data_req.param_info.value),
> +                                             l_val);
>                                       m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(cb, 
> comp, AVSV_CKPT_COMP_CURR_PROXY_NAME);
>                               } else {
>                                       /* log error that a the  value len is 
> invalid */
> @@ -856,7 +854,7 @@
>                                  alarm notification by AMFD.
>                                */
>                               l_val = 
> ntohl(*((uint32_t*)&n2d_msg->msg_info.n2d_data_req.param_info.value[0]));
> -                             avd_send_error_report_ntf(&comp->comp_info.name,
> +                             
> avd_send_error_report_ntf(Amf::to_string(&comp->comp_info.name),
>                                               
> static_cast<SaAmfRecommendedRecoveryT>(l_val));
>                               break;
>                       default:
> @@ -908,7 +906,7 @@
>                                                                               
> SA_AIS_ERR_REPAIR_PENDING,
>                                                                               
> nullptr,
>                                                                               
> "SU '%s' moved to 'termination failed' state",
> -                                                                             
> su->name.value);
> +                                                                             
> su->name.c_str());
>                                                               si->invocation 
> = 0;
>                                                       }
>                                               }
> @@ -1034,7 +1032,7 @@
>    */
>   void avd_node_failover(AVD_AVND *node)
>   {
> -     TRACE_ENTER2("'%s'", node->name.value);
> +     TRACE_ENTER2("'%s'", node->name.c_str());
>       avd_node_mark_absent(node);
>       avd_pg_node_csi_del_all(avd_cb, node);
>       avd_node_down_mw_susi_failover(avd_cb, node);
> diff --git a/osaf/services/saf/amf/amfd/node.cc 
> b/osaf/services/saf/amf/amfd/node.cc
> --- a/osaf/services/saf/amf/amfd/node.cc
> +++ b/osaf/services/saf/amf/amfd/node.cc
> @@ -30,27 +30,17 @@
>   AmfDb<uint32_t, AVD_AVND> *node_id_db = 0;  /* SaClmNodeIdT index */
>   
>   bool operator<(const AVD_AVND &lhs, const AVD_AVND &rhs) {
> -  if (strncmp((const char*) lhs.name.value, (const char*) rhs.name.value, 
> lhs.name.length) < 0)
> -    return true;
> -  else
> -    return false;
> +     if (lhs.name.compare(rhs.name) < 0) {
> +             return true;
> +     } else {
> +             return false;
> +     }
>   }
>   
>   bool NodeNameCompare::operator() (const AVD_AVND* lhs, const AVD_AVND* rhs) 
> {
>     return *lhs < *rhs;
>   }
>   
> -//
> -// TODO(HANO) Temporary use this function instead of strdup which uses 
> malloc.
> -// Later on remove this function and use std::string instead
> -#include <cstring>
> -static char *StrDup(const char *s)
> -{
> -     char *c = new char[strlen(s) + 1];
> -     std::strcpy(c,s);
> -     return c;
> -}
> -
>   uint32_t avd_node_add_nodeid(AVD_AVND *node)
>   {
>       unsigned int rc;
> @@ -72,11 +62,14 @@
>   void avd_node_db_add(AVD_AVND *node)
>   {
>       unsigned int rc;
> +     TRACE_ENTER();
>   
> -     if (node_name_db->find(Amf::to_string(&node->name)) == nullptr) {
> -             rc = node_name_db->insert(Amf::to_string(&node->name), node);
> +     if (node_name_db->find(node->name) == nullptr) {
> +             TRACE("add %s", node->name.c_str());
> +             rc = node_name_db->insert(node->name, node);
>               osafassert(rc == NCSCC_RC_SUCCESS);
>       }
> +     TRACE_LEAVE();
>   }
>   
>   //
> @@ -98,7 +91,6 @@
>   
>   //
>   void AVD_AVND::initialize() {
> -  name = {};
>     node_name = {};
>     node_info = {};
>     node_info.member = SA_FALSE;
> @@ -137,29 +129,25 @@
>   }
>   
>   //
> -AVD_AVND::AVD_AVND(const SaNameT *dn) {
> +AVD_AVND::AVD_AVND(const std::string& dn) :
> +     name(dn)
> +{
> +     std::string::size_type eq_pos;
> +     std::string::size_type comma_pos;
>   
> -  char *tmp_node_name;
> -  SaNameT rdn = *dn;
> -
> -  initialize();
> -
> -  memcpy(&name.value, dn->value, dn->length);
> -  name.length = dn->length;
> -  tmp_node_name = strchr((char*)rdn.value, ',');
> -  *tmp_node_name = 0;
> -  tmp_node_name = strchr((char*)rdn.value, '=');
> -  tmp_node_name++;
> -  node_name = StrDup(tmp_node_name);
> +     initialize();
> +     // DN looks like safAmfNode=SC-1,safAmfCluster=myAmfCluster
> +     eq_pos = dn.find('=');
> +     comma_pos = dn.find(',');
> +     node_name = dn.substr(eq_pos + 1, comma_pos - eq_pos - 1);
>   }
>   
>   //
>   AVD_AVND::~AVD_AVND() {
> -  delete [] node_name;
>   }
>   
>   //
> -AVD_AVND *avd_node_new(const SaNameT *dn)
> +AVD_AVND *avd_node_new(const std::string& dn)
>   {
>     AVD_AVND *node;
>   
> @@ -174,7 +162,7 @@
>       if (node->node_info.nodeId)
>               avd_node_delete_nodeid(node);
>       m_AVSV_SEND_CKPT_UPDT_ASYNC_RMV(avd_cb, node, 
> AVSV_CKPT_AVD_NODE_CONFIG);
> -     node_name_db->erase(Amf::to_string(&node->name));
> +     node_name_db->erase(node->name);
>       delete node;
>   }
>   
> @@ -198,14 +186,11 @@
>       TRACE_LEAVE();
>   }
>   
> -AVD_AVND *avd_node_get(const SaNameT *dn)
> -{
> -     return node_name_db->find(Amf::to_string(dn));
> -}
> -
>   AVD_AVND *avd_node_get(const std::string& dn)
>   {
> +     TRACE_ENTER2("%s", dn.c_str());
>       return node_name_db->find(dn);
> +     TRACE_LEAVE();
>   }
>   
>   AVD_AVND *avd_node_find_nodeid(SaClmNodeIdT node_id)
> @@ -220,50 +205,50 @@
>    *
>    * @return int
>    */
> -static int is_config_valid(const SaNameT *dn, const SaImmAttrValuesT_2 
> **attributes, CcbUtilOperationData_t * opdata)
> +static int is_config_valid(const std::string& dn, const SaImmAttrValuesT_2 
> **attributes, CcbUtilOperationData_t * opdata)
>   {
>       SaBoolT abool;
>       SaAmfAdminStateT admstate;
> -     char *parent;
> +     std::string::size_type pos;
>       SaNameT saAmfNodeClmNode;
>   
> -     if ((parent = strchr((char *)dn->value, ',')) == nullptr) {
> -             report_ccb_validation_error(opdata, "No parent to '%s' ", 
> dn->value);
> +     if ((pos = dn.find(',')) == std::string::npos) {
> +             report_ccb_validation_error(opdata, "No parent to '%s' ", 
> dn.c_str());
>               return 0;
>       }
>   
> -     if (strncmp(++parent, "safAmfCluster=", 14) != 0) {
> -             report_ccb_validation_error(opdata, "Wrong parent '%s' to '%s' 
> ", parent, dn->value);
> +     if (dn.compare(pos + 1, 14, "safAmfCluster=") != 0) {
> +             report_ccb_validation_error(opdata, "Wrong parent '%s' to '%s' 
> ", dn.substr(pos + 1).c_str(), dn.c_str());
>               return 0;
>       }
>   
>       if ((immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfNodeAutoRepair"), 
> attributes, 0, &abool) == SA_AIS_OK) && (abool > SA_TRUE)) {
> -             report_ccb_validation_error(opdata, "Invalid 
> saAmfNodeAutoRepair %u for '%s'", abool, dn->value);
> +             report_ccb_validation_error(opdata, "Invalid 
> saAmfNodeAutoRepair %u for '%s'", abool, dn.c_str());
>               return 0;
>       }
>   
>       if 
> ((immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfNodeFailfastOnTerminationFailure"),
>  attributes, 0, &abool) == SA_AIS_OK) &&
>           (abool > SA_TRUE)) {
>               report_ccb_validation_error(opdata, "Invalid 
> saAmfNodeFailfastOnTerminationFailure %u for '%s'",
> -                             abool, dn->value);
> +                             abool, dn.c_str());
>               return 0;
>       }
>   
>       if 
> ((immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfNodeFailfastOnInstantiationFailure"),
>  attributes, 0, &abool) == SA_AIS_OK) &&
>           (abool > SA_TRUE)) {
>               report_ccb_validation_error(opdata, "Invalid 
> saAmfNodeFailfastOnInstantiationFailure %u for '%s'",
> -                             abool, dn->value);
> +                             abool, dn.c_str());
>               return 0;
>       }
>   
>       if ((immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfNodeAdminState"), 
> attributes, 0, &admstate) == SA_AIS_OK) &&
>           !avd_admin_state_is_valid(admstate, opdata)) {
> -             report_ccb_validation_error(opdata, "Invalid 
> saAmfNodeAdminState %u for '%s'", admstate, dn->value);
> +             report_ccb_validation_error(opdata, "Invalid 
> saAmfNodeAdminState %u for '%s'", admstate, dn.c_str());
>               return 0;
>       }
>   
>       if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfNodeClmNode"), 
> attributes, 0, &saAmfNodeClmNode) != SA_AIS_OK) {
> -             report_ccb_validation_error(opdata, "saAmfNodeClmNode not 
> configured for '%s'", dn->value);
> +             report_ccb_validation_error(opdata, "saAmfNodeClmNode not 
> configured for '%s'", dn.c_str());
>               return 0;
>       }
>   
> @@ -277,12 +262,12 @@
>    *
>    * @return AVD_AVND*
>    */
> -static AVD_AVND *node_create(SaNameT *dn, const SaImmAttrValuesT_2 
> **attributes)
> +static AVD_AVND *node_create(const std::string& dn, const SaImmAttrValuesT_2 
> **attributes)
>   {
>       int rc = -1;
>       AVD_AVND *node;
>   
> -     TRACE_ENTER2("'%s'", dn->value);
> +     TRACE_ENTER2("'%s'", dn.c_str());
>   
>       /*
>        ** If called at new active at failover, the object is found in the DB
> @@ -294,19 +279,21 @@
>       } else
>               TRACE("already created, refreshing config...");
>   
> -
> -     if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfNodeClmNode"), 
> attributes, 0, &node->saAmfNodeClmNode) != SA_AIS_OK) {
> -             LOG_ER("saAmfNodeClmNode not configured for '%s'", 
> node->saAmfNodeClmNode.value);
> +     SaNameT safAmfNodeClmNode;
> +     if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfNodeClmNode"), 
> attributes, 0, &safAmfNodeClmNode) != SA_AIS_OK) {
> +             LOG_ER("saAmfNodeClmNode not configured for '%s'", 
> safAmfNodeClmNode.value);
>               goto done;
>       }
>   
> +     node->saAmfNodeClmNode = Amf::to_string(&safAmfNodeClmNode);
> +
>       if 
> (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfNodeSuFailOverProb"), 
> attributes, 0, &node->saAmfNodeSuFailOverProb) != SA_AIS_OK) {
> -             LOG_ER("Get saAmfNodeSuFailOverProb FAILED for '%s'", 
> dn->value);
> +             LOG_ER("Get saAmfNodeSuFailOverProb FAILED for '%s'", 
> dn.c_str());
>               goto done;
>       }
>   
>       if 
> (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfNodeSuFailoverMax"), 
> attributes, 0, &node->saAmfNodeSuFailoverMax) != SA_AIS_OK) {
> -             LOG_ER("Get saAmfNodeSuFailoverMax FAILED for '%s'", dn->value);
> +             LOG_ER("Get saAmfNodeSuFailoverMax FAILED for '%s'", 
> dn.c_str());
>               goto done;
>       }
>   
> @@ -330,6 +317,7 @@
>       }
>   
>       rc = 0;
> +     osafassert(node->name.empty() == false);
>   
>   done:
>       if (rc != 0) {
> @@ -373,12 +361,12 @@
>       }
>   
>       while (immutil_saImmOmSearchNext_2(searchHandle, &dn, 
> (SaImmAttrValuesT_2 ***)&attributes) == SA_AIS_OK) {
> -             if (!is_config_valid(&dn, attributes, nullptr)) {
> +             if (!is_config_valid(Amf::to_string(&dn), attributes, nullptr)) 
> {
>                       error = SA_AIS_ERR_FAILED_OPERATION;
>                       goto done2;
>               }
>   
> -             if ((node = node_create(&dn, attributes)) == nullptr) {
> +             if ((node = node_create(Amf::to_string(&dn), attributes)) == 
> nullptr) {
>                       error = SA_AIS_ERR_FAILED_OPERATION;
>                       goto done2;
>               }
> @@ -407,7 +395,7 @@
>   void avd_node_state_set(AVD_AVND *node, AVD_AVND_STATE node_state)
>   {
>       osafassert(node_state <= AVD_AVND_STATE_NCS_INIT);
> -     TRACE_ENTER2("'%s' %s => %s",   node->name.value, 
> node_state_name[node->node_state],
> +     TRACE_ENTER2("'%s' %s => %s",   node->name.c_str(), 
> node_state_name[node->node_state],
>               node_state_name[node_state]);
>       node->node_state = node_state;
>       m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, node, 
> AVSV_CKPT_AVND_NODE_STATE);
> @@ -426,7 +414,7 @@
>                * event. Since we dont update oper_state in avnd_down because 
> the role is
>                * not set to Active(there is no implementer), so updating now.
>                */
> -             avd_saImmOiRtObjectUpdate(&node->name, "saAmfNodeOperState",
> +             avd_saImmOiRtObjectUpdate(node->name, "saAmfNodeOperState",
>                       SA_IMM_ATTR_SAUINT32T, &node->saAmfNodeOperState);
>   
>               /* Send notification for node oper state down. It is set to
> @@ -436,7 +424,7 @@
>                  avd_node_mark_absent, we need to send notification. */
>               if ((node->saAmfNodeOperState == SA_AMF_OPERATIONAL_DISABLED) &&
>                               (node->node_state == AVD_AVND_STATE_ABSENT))
> -                     avd_send_oper_chg_ntf(&node->name,
> +                     avd_send_oper_chg_ntf(node->name,
>                                       SA_AMF_NTFID_NODE_OP_STATE,
>                                       SA_AMF_OPERATIONAL_ENABLED,
>                                       node->saAmfNodeOperState);
> @@ -447,15 +435,15 @@
>       SaAmfOperationalStateT old_state = node->saAmfNodeOperState;
>   
>       osafassert(oper_state <= SA_AMF_OPERATIONAL_DISABLED);
> -     saflog(LOG_NOTICE, amfSvcUsrName, "%s OperState %s => %s", 
> node->name.value,
> +     saflog(LOG_NOTICE, amfSvcUsrName, "%s OperState %s => %s", 
> node->name.c_str(),
>                  avd_oper_state_name[node->saAmfNodeOperState], 
> avd_oper_state_name[oper_state]);
>       node->saAmfNodeOperState = oper_state;
> -        avd_saImmOiRtObjectUpdate(&node->name, "saAmfNodeOperState",
> +        avd_saImmOiRtObjectUpdate(node->name, "saAmfNodeOperState",
>                       SA_IMM_ATTR_SAUINT32T, &node->saAmfNodeOperState);
>       m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, node, 
> AVSV_CKPT_AVND_OPER_STATE);
>       
>       /* notification */
> -     avd_send_oper_chg_ntf(&node->name,
> +     avd_send_oper_chg_ntf(node->name,
>                               SA_AMF_NTFID_NODE_OP_STATE,
>                               old_state,
>                               node->saAmfNodeOperState);
> @@ -474,10 +462,9 @@
>   static SaAisErrorT node_ccb_completed_delete_hdlr(CcbUtilOperationData_t 
> *opdata)
>   {
>       SaAisErrorT rc = SA_AIS_OK;
> -     AVD_AVND *node = avd_node_get(&opdata->objectName);
> +     AVD_AVND *node = avd_node_get(Amf::to_string(&opdata->objectName));
>       bool su_exist = false;
>       CcbUtilOperationData_t *t_opData;
> -     std::string node_name(Amf::to_string(&node->name));
>   
>       TRACE_ENTER2("'%s'", opdata->objectName.value);
>   
> @@ -503,7 +490,8 @@
>                * each of the SU in the node list in the current CCB
>                */
>               for (const auto& su : node->list_of_su) {
> -                     t_opData = ccbutil_getCcbOpDataByDN(opdata->ccbId, 
> &su->name);
> +                     const SaNameTWrapper su_name(su->name);
> +                     t_opData = ccbutil_getCcbOpDataByDN(opdata->ccbId, 
> su_name);
>                       if ((t_opData == nullptr) || (t_opData->operationType 
> != CCBUTIL_DELETE)) {
>                               su_exist = true;
>                               break;
> @@ -524,14 +512,15 @@
>   
>               if (node_in_nodegroup(Amf::to_string(&(opdata->objectName)), 
> ng) == true) {
>                       // if the node is being removed from nodegroup too, 
> then it's OK
> -                     TRACE("check if node is being deleted from nodegroup 
> '%s'", ng->name.value);
> -                     t_opData = ccbutil_getCcbOpDataByDN(opdata->ccbId, 
> &ng->name);
> +                     TRACE("check if node is being deleted from nodegroup 
> '%s'", ng->name.c_str());
> +                     const SaNameTWrapper ng_name(ng->name);
> +                     t_opData = ccbutil_getCcbOpDataByDN(opdata->ccbId, 
> ng_name);
>                       
>                       if (t_opData == nullptr) {
>                               TRACE("t_opData is nullptr");
>                               report_ccb_validation_error(opdata, "'%s' 
> exists in"
>                                               " the nodegroup '%s'",
> -                                             opdata->objectName.value, 
> ng->name.value);
> +                                             opdata->objectName.value, 
> ng->name.c_str());
>                               rc = SA_AIS_ERR_BAD_OPERATION;
>                               goto done;
>                       }
> @@ -550,9 +539,9 @@
>                                       node_being_removed == false) {
>                                       if (mod->modType == 
> SA_IMM_ATTR_VALUES_DELETE) {
>                                               for (unsigned j = 0; j < 
> mod->modAttr.attrValuesNumber; j++) {
> -                                                     if 
> (node_name.compare(Amf::to_string((SaNameT *)mod->modAttr.attrValues[j])) == 
> 0) {
> +                                                     if 
> (node->name.compare(Amf::to_string((SaNameT *)mod->modAttr.attrValues[j])) == 
> 0) {
>                                                               // node is 
> being removed from nodegroup
> -                                                             TRACE("node %s 
> is being removed from %s", node_name.c_str(), ng->name.value);
> +                                                             TRACE("node %s 
> is being removed from %s", node->name.c_str(), ng->name.c_str());
>                                                               
> node_being_removed = true;
>                                                               break;
>                                                       }
> @@ -567,7 +556,7 @@
>                       if (node_being_removed == false) {
>                               report_ccb_validation_error(opdata, "'%s' 
> exists in"
>                                               " the nodegroup '%s'",
> -                                             opdata->objectName.value, 
> ng->name.value);
> +                                             opdata->objectName.value, 
> ng->name.c_str());
>                               rc = SA_AIS_ERR_BAD_OPERATION;
>                               goto done;
>                       }
> @@ -670,7 +659,7 @@
>   
>       switch (opdata->operationType) {
>       case CCBUTIL_CREATE:
> -             if (is_config_valid(&opdata->objectName, 
> opdata->param.create.attrValues, opdata))
> +             if (is_config_valid(Amf::to_string(&opdata->objectName), 
> opdata->param.create.attrValues, opdata))
>                       rc = SA_AIS_OK;
>               break;
>       case CCBUTIL_MODIFY:
> @@ -690,7 +679,7 @@
>   
>   static void node_ccb_apply_delete_hdlr(AVD_AVND *node)
>   {
> -     TRACE_ENTER2("'%s'", node->name.value);
> +     TRACE_ENTER2("'%s'", node->name.c_str());
>       avd_node_delete_nodeid(node);
>       avd_node_delete(node);
>       TRACE_LEAVE();
> @@ -704,9 +693,11 @@
>   
>       TRACE_ENTER2("'%s'", opdata->objectName.value);
>   
> -     node = avd_node_get(&opdata->objectName);
> +     node = avd_node_get(Amf::to_string(&opdata->objectName));
>       osafassert(node != nullptr);
>   
> +     const SaNameTWrapper node_name(node->name);
> +
>       i = 0;
>       /* Modifications can be done for the following parameters. */
>       while (((attr_mod = opdata->param.modify.attrMods[i++])) != nullptr) {
> @@ -728,7 +719,7 @@
>                       param.class_id = AVSV_SA_AMF_NODE;
>                       param.attr_id = saAmfNodeSuFailoverProb_ID;
>                       param.act = AVSV_OBJ_OPR_MOD;
> -                     param.name = node->name;
> +                     param.name = node_name;
>                       TRACE("Old saAmfNodeSuFailOverProb is '%llu'", 
> node->saAmfNodeSuFailOverProb);
>                       if (node->node_state != AVD_AVND_STATE_ABSENT) {
>                               param.value_len = sizeof(SaTimeT);
> @@ -752,7 +743,7 @@
>                       param.class_id = AVSV_SA_AMF_NODE;
>                       param.attr_id = saAmfNodeSuFailoverMax_ID;
>                       param.act = AVSV_OBJ_OPR_MOD;
> -                     param.name = node->name;
> +                     param.name = node_name;
>                       TRACE("Old saAmfNodeSuFailoverMax is '%u'", 
> node->saAmfNodeSuFailoverMax);
>   
>                       if (node->node_state != AVD_AVND_STATE_ABSENT) {
> @@ -769,19 +760,19 @@
>               } else if (!strcmp(attribute->attrName, "saAmfNodeAutoRepair")) 
> {
>                       node->saAmfNodeAutoRepair = *((SaBoolT 
> *)attribute->attrValues[0]);
>                       amflog(LOG_NOTICE, "%s saAmfNodeAutoRepair changed to 
> %u",
> -                             node->name.value, node->saAmfNodeAutoRepair);
> +                             node->name.c_str(), node->saAmfNodeAutoRepair);
>               } else if (!strcmp(attribute->attrName, 
> "saAmfNodeFailfastOnTerminationFailure")) {
>                       node->saAmfNodeFailfastOnTerminationFailure =
>                                       *((SaBoolT *)attribute->attrValues[0]);
>                       amflog(LOG_NOTICE, "%s 
> saAmfNodeFailfastOnTerminationFailure changed to %u",
> -                             node->name.value, 
> node->saAmfNodeFailfastOnTerminationFailure);
> +                             node->name.c_str(), 
> node->saAmfNodeFailfastOnTerminationFailure);
>               } else if (!strcmp(attribute->attrName, 
> "saAmfNodeFailfastOnInstantiationFailure")) {
>                       node->saAmfNodeFailfastOnInstantiationFailure =
>                                       *((SaBoolT *)attribute->attrValues[0]);
>                       amflog(LOG_NOTICE, "%s 
> saAmfNodeFailfastOnInstantiationFailure changed to %u",
> -                             node->name.value, 
> node->saAmfNodeFailfastOnInstantiationFailure);
> +                             node->name.c_str(), 
> node->saAmfNodeFailfastOnInstantiationFailure);
>                       LOG_NO( "%s saAmfNodeFailfastOnInstantiationFailure 
> changed to %u",
> -                             node->name.value, 
> node->saAmfNodeFailfastOnInstantiationFailure);
> +                             node->name.c_str(), 
> node->saAmfNodeFailfastOnInstantiationFailure);
>               } else {
>                       osafassert(0);
>               }
> @@ -798,7 +789,7 @@
>   
>       switch (opdata->operationType) {
>       case CCBUTIL_CREATE:
> -             node = node_create(&opdata->objectName, 
> opdata->param.create.attrValues);
> +             node = node_create(Amf::to_string(&opdata->objectName), 
> opdata->param.create.attrValues);
>               osafassert(node);
>               node_add_to_model(node);
>               break;
> @@ -835,16 +826,16 @@
>               node->saAmfNodeAdminState = admin_state;
>               m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, node, 
> AVSV_CKPT_AVND_ADMIN_STATE);
>       } else {
> -             TRACE_ENTER2("%s AdmState %s => %s", node->name.value,
> +             TRACE_ENTER2("%s AdmState %s => %s", node->name.c_str(),
>                               avd_adm_state_name[node->saAmfNodeAdminState], 
> avd_adm_state_name[admin_state]);
>   
> -             saflog(LOG_NOTICE, amfSvcUsrName, "%s AdmState %s => %s", 
> node->name.value,
> +             saflog(LOG_NOTICE, amfSvcUsrName, "%s AdmState %s => %s", 
> node->name.c_str(),
>                               avd_adm_state_name[node->saAmfNodeAdminState], 
> avd_adm_state_name[admin_state]);
>               node->saAmfNodeAdminState = admin_state;
> -             avd_saImmOiRtObjectUpdate(&node->name, "saAmfNodeAdminState",
> +             avd_saImmOiRtObjectUpdate(node->name, "saAmfNodeAdminState",
>                       SA_IMM_ATTR_SAUINT32T, &node->saAmfNodeAdminState);
>               m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, node, 
> AVSV_CKPT_AVND_ADMIN_STATE);
> -             avd_send_admin_state_chg_ntf(&node->name, 
> SA_AMF_NTFID_NODE_ADMIN_STATE, old_state, node->saAmfNodeAdminState);
> +             avd_send_admin_state_chg_ntf(node->name, 
> SA_AMF_NTFID_NODE_ADMIN_STATE, old_state, node->saAmfNodeAdminState);
>       }
>       TRACE_LEAVE();
>   }
> @@ -858,7 +849,7 @@
>   {
>       uint32_t rc = NCSCC_RC_SUCCESS;
>   
> -     TRACE_ENTER2("%s", node->name.value);
> +     TRACE_ENTER2("%s", node->name.c_str());
>   
>       /* terminate all the SUs on this Node */
>       for (const auto& su : node->list_of_su) {
> @@ -871,7 +862,7 @@
>                               node->su_cnt_admin_oper++;
>                       } else {
>                               rc = NCSCC_RC_FAILURE;
> -                             LOG_WA("Failed Termination '%s'", 
> su->name.value);
> +                             LOG_WA("Failed Termination '%s'", 
> su->name.c_str());
>                       }
>               }
>       }
> @@ -889,7 +880,7 @@
>   {
>       uint32_t rc = NCSCC_RC_SUCCESS;
>   
> -     TRACE_ENTER2("%s", node->name.value);
> +     TRACE_ENTER2("%s", node->name.c_str());
>   
>       /* instantiate the SUs on this Node */
>       for (const auto& su : node->list_of_su) {
> @@ -907,7 +898,7 @@
>                                               
> su->sg_of_su->try_inst_counter++;
>                                       } else {
>                                               rc = NCSCC_RC_FAILURE;
> -                                             LOG_WA("Failed Instantiation 
> '%s'", su->name.value);
> +                                             LOG_WA("Failed Instantiation 
> '%s'", su->name.c_str());
>                                       }
>                               }
>                       } else
> @@ -939,7 +930,7 @@
>       SaAmfAdminStateT new_admin_state;
>       bool is_assignments_done = false;
>   
> -     TRACE_ENTER2("%s", node->name.value);
> +     TRACE_ENTER2("%s", node->name.c_str());
>   
>           /* determine the new_admin_state from operation ID */
>       if (operationId == SA_AMF_ADMIN_SHUTDOWN)
> @@ -1177,7 +1168,7 @@
>   
>       TRACE_ENTER2("%llu, '%s', %llu", invocation, objectName->value, 
> operationId);
>   
> -     node = avd_node_get(objectName);
> +     node = avd_node_get(Amf::to_string(objectName));
>       osafassert(node != AVD_AVND_NULL);
>   
>       if (node->admin_node_pend_cbk.admin_oper != 0) {
> @@ -1193,7 +1184,7 @@
>       for (const auto& su : node->list_of_su) {
>               if (su->pend_cbk.admin_oper != 0) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_TRY_AGAIN, nullptr,
> -                                     "SU on this node is undergoing admin op 
> (%s)", su->name.value);
> +                                     "SU on this node is undergoing admin op 
> (%s)", su->name.c_str());
>                       goto done;
>               }
>   
> @@ -1201,14 +1192,14 @@
>                               (su->saAmfSUPresenceState == 
> SA_AMF_PRESENCE_TERMINATING) ||
>                               (su->saAmfSUPresenceState == 
> SA_AMF_PRESENCE_RESTARTING)) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_TRY_AGAIN, nullptr,
> -                                     "'%s' presence state is '%u'", 
> su->name.value, su->saAmfSUPresenceState);
> +                                     "'%s' presence state is '%u'", 
> su->name.c_str(), su->saAmfSUPresenceState);
>                       goto done;
>               }
>   
>               if (su->sg_of_su->sg_fsm_state != AVD_SG_FSM_STABLE) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_TRY_AGAIN, nullptr,
>                                       "SG'%s' of SU'%s' on this node not in 
> STABLE state",
> -                                     su->sg_of_su->name.value, 
> su->name.value);
> +                                     su->sg_of_su->name.c_str(), 
> su->name.c_str());
>                       goto done;
>               }
>       }
> @@ -1223,20 +1214,20 @@
>       case SA_AMF_ADMIN_SHUTDOWN:
>               if (node->saAmfNodeAdminState == SA_AMF_ADMIN_SHUTTING_DOWN) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_NO_OP, nullptr,
> -                                     "'%s' Already in SHUTTING DOWN state", 
> node->name.value);
> +                                     "'%s' Already in SHUTTING DOWN state", 
> node->name.c_str());
>                       goto done;
>               }
>   
>               if (node->saAmfNodeAdminState != SA_AMF_ADMIN_UNLOCKED) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_BAD_OPERATION, nullptr,
>                                       "'%s' Invalid Admin Operation SHUTDOWN 
> in state %s",
> -                                     node->name.value, 
> avd_adm_state_name[node->saAmfNodeAdminState]);
> +                                     node->name.c_str(), 
> avd_adm_state_name[node->saAmfNodeAdminState]);
>                       goto done;
>               }
>   
>               if (node->node_info.member == false) {
>                       node_admin_state_set(node, SA_AMF_ADMIN_LOCKED);
> -                     LOG_NO("'%s' SHUTDOWN: CLM node is not member", 
> node->name.value);
> +                     LOG_NO("'%s' SHUTDOWN: CLM node is not member", 
> node->name.c_str());
>                       avd_saImmOiAdminOperationResult(immOiHandle, 
> invocation, SA_AIS_OK);
>                       goto done;
>               }
> @@ -1247,19 +1238,19 @@
>       case SA_AMF_ADMIN_UNLOCK:
>               if (node->saAmfNodeAdminState == SA_AMF_ADMIN_UNLOCKED) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_NO_OP, nullptr,
> -                                     "'%s' Already in UNLOCKED state", 
> node->name.value);
> +                                     "'%s' Already in UNLOCKED state", 
> node->name.c_str());
>                       goto done;
>               }
>   
>               if (node->saAmfNodeAdminState != SA_AMF_ADMIN_LOCKED) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_BAD_OPERATION, nullptr,
>                                       "'%s' Invalid Admin Operation UNLOCK in 
> state %s",
> -                                     node->name.value, 
> avd_adm_state_name[node->saAmfNodeAdminState]);
> +                                     node->name.c_str(), 
> avd_adm_state_name[node->saAmfNodeAdminState]);
>                       goto done;
>               }
>   
>               if (node->node_info.member == false) {
> -                     LOG_NO("'%s' UNLOCK: CLM node is not member", 
> node->name.value);
> +                     LOG_NO("'%s' UNLOCK: CLM node is not member", 
> node->name.c_str());
>                       node_admin_state_set(node, SA_AMF_ADMIN_UNLOCKED);
>                       avd_saImmOiAdminOperationResult(immOiHandle, 
> invocation, SA_AIS_OK);
>                       goto done;
> @@ -1282,20 +1273,20 @@
>       case SA_AMF_ADMIN_LOCK:
>               if (node->saAmfNodeAdminState == SA_AMF_ADMIN_LOCKED) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_NO_OP, nullptr,
> -                                     "'%s' Already in LOCKED state", 
> node->name.value);
> +                                     "'%s' Already in LOCKED state", 
> node->name.c_str());
>                       goto done;
>               }
>   
>               if (node->saAmfNodeAdminState == 
> SA_AMF_ADMIN_LOCKED_INSTANTIATION) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_BAD_OPERATION, nullptr,
>                                       "'%s' Invalid Admin Operation LOCK in 
> state %s",
> -                                     node->name.value, 
> avd_adm_state_name[node->saAmfNodeAdminState]);
> +                                     node->name.c_str(), 
> avd_adm_state_name[node->saAmfNodeAdminState]);
>                       goto done;
>               }
>   
>               if (node->node_info.member == false) {
>                       node_admin_state_set(node, SA_AMF_ADMIN_LOCKED);
> -                     LOG_NO("%s' LOCK: CLM node is not member", 
> node->name.value);
> +                     LOG_NO("%s' LOCK: CLM node is not member", 
> node->name.c_str());
>                       avd_saImmOiAdminOperationResult(immOiHandle, 
> invocation, SA_AIS_OK);
>                       goto done;
>               }
> @@ -1315,14 +1306,14 @@
>       case SA_AMF_ADMIN_LOCK_INSTANTIATION:
>               if (node->saAmfNodeAdminState == 
> SA_AMF_ADMIN_LOCKED_INSTANTIATION) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_NO_OP, nullptr,
> -                                     "'%s' Already in LOCKED INSTANTIATION 
> state", node->name.value);
> +                                     "'%s' Already in LOCKED INSTANTIATION 
> state", node->name.c_str());
>                       goto done;
>               }
>   
>               if (node->saAmfNodeAdminState != SA_AMF_ADMIN_LOCKED) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_BAD_OPERATION, nullptr,
>                                       "'%s' Invalid Admin Operation 
> LOCK_INSTANTIATION in state %s",
> -                                     node->name.value, 
> avd_adm_state_name[node->saAmfNodeAdminState]);
> +                                     node->name.c_str(), 
> avd_adm_state_name[node->saAmfNodeAdminState]);
>                       goto done;
>               }
>   
> @@ -1330,13 +1321,13 @@
>               node_admin_state_set(node, SA_AMF_ADMIN_LOCKED_INSTANTIATION);
>   
>               if (node->node_info.member == false) {
> -                     LOG_NO("'%s' LOCK_INSTANTIATION: CLM node is not 
> member", node->name.value);
> +                     LOG_NO("'%s' LOCK_INSTANTIATION: CLM node is not 
> member", node->name.c_str());
>                       avd_saImmOiAdminOperationResult(immOiHandle, 
> invocation, SA_AIS_OK);
>                       goto done;
>               }
>   
>               if (node->saAmfNodeOperState == SA_AMF_OPERATIONAL_DISABLED) {
> -                     LOG_NO("'%s' LOCK_INSTANTIATION: AMF node oper state 
> disabled", node->name.value);
> +                     LOG_NO("'%s' LOCK_INSTANTIATION: AMF node oper state 
> disabled", node->name.c_str());
>                       avd_saImmOiAdminOperationResult(immOiHandle, 
> invocation, SA_AIS_OK);
>                       goto done;
>               }
> @@ -1363,14 +1354,14 @@
>       case SA_AMF_ADMIN_UNLOCK_INSTANTIATION:
>               if (node->saAmfNodeAdminState == SA_AMF_ADMIN_LOCKED) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_NO_OP, nullptr,
> -                                     "'%s' Already in LOCKED state", 
> node->name.value);
> +                                     "'%s' Already in LOCKED state", 
> node->name.c_str());
>                       goto done;
>               }
>   
>               if (node->saAmfNodeAdminState != 
> SA_AMF_ADMIN_LOCKED_INSTANTIATION) {
>                       report_admin_op_error(immOiHandle, invocation, 
> SA_AIS_ERR_BAD_OPERATION, nullptr,
>                                       "'%s' Invalid Admin Operation 
> UNLOCK_INSTANTIATION in state %s",
> -                                     node->name.value, 
> avd_adm_state_name[node->saAmfNodeAdminState]);
> +                                     node->name.c_str(), 
> avd_adm_state_name[node->saAmfNodeAdminState]);
>                       goto done;
>               }
>   
> @@ -1378,13 +1369,13 @@
>               node_admin_state_set(node, SA_AMF_ADMIN_LOCKED);
>   
>               if (node->node_info.member == false) {
> -                     LOG_NO("'%s' UNLOCK_INSTANTIATION: CLM node is not 
> member", node->name.value);
> +                     LOG_NO("'%s' UNLOCK_INSTANTIATION: CLM node is not 
> member", node->name.c_str());
>                       avd_saImmOiAdminOperationResult(immOiHandle, 
> invocation, SA_AIS_OK);
>                       goto done;
>               }
>   
>               if (node->saAmfNodeOperState == SA_AMF_OPERATIONAL_DISABLED) {
> -                     LOG_NO("'%s' UNLOCK_INSTANTIATION: AMF node oper state 
> disabled", node->name.value);
> +                     LOG_NO("'%s' UNLOCK_INSTANTIATION: AMF node oper state 
> disabled", node->name.c_str());
>                       avd_saImmOiAdminOperationResult(immOiHandle, 
> invocation, SA_AIS_OK);
>                       goto done;
>               }
> @@ -1428,7 +1419,7 @@
>   
>   void avd_node_add_su(AVD_SU *su)
>   {
> -     if (strstr((char *)su->name.value, "safApp=OpenSAF") != nullptr) {
> +     if (su->name.find("safApp=OpenSAF") != std::string::npos) {
>               su->su_on_node->list_of_ncs_su.push_back(su);
>               std::sort(su->su_on_node->list_of_ncs_su.begin(), 
> su->su_on_node->list_of_ncs_su.end(),
>                       [](const AVD_SU *a, const AVD_SU *b) -> bool {return 
> a->saAmfSURank < b->saAmfSURank;});
> @@ -1481,7 +1472,7 @@
>           for (std::map<std::string, AVD_AMF_NG*>::const_iterator it = 
> nodegroup_db->begin();
>                           it != nodegroup_db->end(); it++) {
>                   AVD_AMF_NG *ng = it->second;
> -                if ((node_in_nodegroup(Amf::to_string(&node->name), ng) == 
> true) &&
> +                if ((node_in_nodegroup(node->name, ng) == true) &&
>                                   (ng->saAmfNGAdminState != 
> SA_AMF_ADMIN_UNLOCKED))
>                           return false;
>           }
> @@ -1497,9 +1488,9 @@
>       for (std::map<std::string, AVD_AMF_NG*>::const_iterator it = 
> nodegroup_db->begin();
>                       it != nodegroup_db->end(); it++) {
>               AVD_AMF_NG *ng = it->second;
> -             if ((node_in_nodegroup(Amf::to_string(&node->name), ng) == 
> true) &&
> +             if ((node_in_nodegroup(node->name, ng) == true) &&
>                               (ng->saAmfNGAdminState == 
> SA_AMF_ADMIN_LOCKED_INSTANTIATION)) {
> -                     TRACE("Nodegroup '%s' is in locked-in", ng->name.value);
> +                     TRACE("Nodegroup '%s' is in locked-in", 
> ng->name.c_str());
>                       return true;
>               }
>       }
> diff --git a/osaf/services/saf/amf/amfd/nodegroup.cc 
> b/osaf/services/saf/amf/amfd/nodegroup.cc
> --- a/osaf/services/saf/amf/amfd/nodegroup.cc
> +++ b/osaf/services/saf/amf/amfd/nodegroup.cc
> @@ -25,7 +25,7 @@
>   #include <set>
>   
>   AmfDb<std::string, AVD_AMF_NG> *nodegroup_db = 0;
> -static AVD_AMF_NG *ng_create(SaNameT *dn, const SaImmAttrValuesT_2 
> **attributes);
> +static AVD_AMF_NG *ng_create(const std::string& dn, const SaImmAttrValuesT_2 
> **attributes);
>   //TODO: Make  below function members.
>   static void ng_admin_unlock_inst(AVD_AMF_NG *ng);
>   static void ng_unlock(AVD_AMF_NG *ng);
> @@ -36,9 +36,9 @@
>    *
>    * @return AVD_AMF_NG*
>    */
> -AVD_AMF_NG *avd_ng_get(const SaNameT *dn)
> +AVD_AMF_NG *avd_ng_get(const std::string& dn)
>   {
> -     return nodegroup_db->find(Amf::to_string(dn));
> +     return nodegroup_db->find(dn);
>   }
>   
>   /**
> @@ -48,21 +48,24 @@
>    *
>    * @return int
>    */
> -static int is_config_valid(const SaNameT *dn, const SaImmAttrValuesT_2 
> **attributes, CcbUtilOperationData_t *opdata)
> +static int is_config_valid(const std::string& dn, const SaImmAttrValuesT_2 
> **attributes, CcbUtilOperationData_t *opdata)
>   {
>       int i = 0;
>       unsigned j = 0;
> -     char *p;
> +     std::string::size_type pos;
>       const SaImmAttrValuesT_2 *attr;
>   
> -     p = strchr((char *)dn->value, ',');
> -     if (p == nullptr) {
> -             report_ccb_validation_error(opdata, "No parent to '%s' ", 
> dn->value);
> +     TRACE_ENTER2("%s", dn.c_str());
> +
> +     if ((pos = dn.find(',')) == std::string::npos) {
> +             report_ccb_validation_error(opdata, "No parent to '%s' ", 
> dn.c_str());
> +             TRACE_LEAVE();
>               return 0;
>       }
>   
> -     if (strncmp(++p, "safAmfCluster=", 14) != 0) {
> -             report_ccb_validation_error(opdata, "Wrong parent '%s' to '%s' 
> ", p, dn->value);
> +     if (dn.compare(pos + 1, 14, "safAmfCluster=") != 0) {
> +             report_ccb_validation_error(opdata, "Wrong parent '%s' to '%s' 
> ", dn.substr(pos + 1).c_str(), dn.c_str());
> +             TRACE_LEAVE();
>               return 0;
>       }
>   
> @@ -75,10 +78,11 @@
>   
>       for (j = 0; j < attr->attrValuesNumber; j++) {
>               SaNameT *name = (SaNameT *)attr->attrValues[j];
> -             AVD_AVND *node = avd_node_get(name);
> +             AVD_AVND *node = avd_node_get(Amf::to_string(name));
>               if (node == nullptr) {
>                       if (opdata == nullptr) {
>                               report_ccb_validation_error(opdata, "'%s' does 
> not exist in model", name->value);
> +                             TRACE_LEAVE();
>                               return 0;
>                       }
>   
> @@ -86,6 +90,7 @@
>                       if (ccbutil_getCcbOpDataByDN(opdata->ccbId, name) == 
> nullptr) {
>                               report_ccb_validation_error(opdata, "'%s' does 
> not exist either in model or CCB",
>                                               name->value);
> +                             TRACE_LEAVE();
>                               return 0;
>                       }
>               }
> @@ -96,23 +101,29 @@
>          -when AMFD is reading the configuration from IMM at OpenSAF start or
>          -nodegroup creation using CCB operation.
>        */
> -     
> -     AVD_AMF_NG *tmp_ng = ng_create((SaNameT *)dn, attributes);
> -     if (tmp_ng == nullptr)
> +
> +     AVD_AMF_NG *tmp_ng = ng_create(dn, attributes);
> +     if (tmp_ng == nullptr) {
> +             TRACE_LEAVE();
>               return 0;
> +     }
> +
>       if (attr->attrValuesNumber != tmp_ng->number_nodes()) {
> -             LOG_ER("Duplicate nodes in saAmfNGNodeList of 
> '%s'",tmp_ng->name.value);
> +             LOG_ER("Duplicate nodes in saAmfNGNodeList of 
> '%s'",tmp_ng->name.c_str());
>               delete tmp_ng;
> +             TRACE_LEAVE();
>               return 0;
>       }
>       //Check if admin state is valid or not.
>       if (!avd_admin_state_is_valid(tmp_ng->saAmfNGAdminState, opdata)) {
>               LOG_ER("Incorrect saAmfNGAdminState:'%u' for 
> '%s'",tmp_ng->saAmfNGAdminState,
> -                             tmp_ng->name.value);
> +                             tmp_ng->name.c_str());
>               delete tmp_ng;
> +             TRACE_LEAVE();
>               return 0;
>       }
>       delete tmp_ng;
> +     TRACE_LEAVE();
>       return 1;
>   }
>   
> @@ -124,7 +135,6 @@
>       ng_on_cluster(0),
>       saAmfNGAdminState(SA_AMF_ADMIN_UNLOCKED)
>   {
> -     memset(&name, 0, sizeof(SaNameT));
>       admin_ng_pend_cbk.admin_oper = static_cast<SaAmfAdminOperationIdT>(0);
>       admin_ng_pend_cbk.invocation = 0;
>   }
> @@ -136,19 +146,18 @@
>    *
>    * @return AVD_AVND*
>    */
> -static AVD_AMF_NG *ng_create(SaNameT *dn, const SaImmAttrValuesT_2 
> **attributes)
> +static AVD_AMF_NG *ng_create(const std::string& dn, const SaImmAttrValuesT_2 
> **attributes)
>   {
>       int rc = -1;
>       unsigned int i, values_number;
>       AVD_AMF_NG *ng;
>       const SaNameT *node_name;
>   
> -     TRACE_ENTER2("'%s'", dn->value);
> +     TRACE_ENTER2("'%s'", dn.c_str());
>   
>       ng = new AVD_AMF_NG();
>   
> -     memcpy(ng->name.value, dn->value, dn->length);
> -     ng->name.length = dn->length;
> +     ng->name = dn;
>   
>       if 
> ((immutil_getAttrValuesNumber(const_cast<SaImmAttrNameT>("saAmfNGNodeList"), 
> attributes,
>               &values_number) == SA_AIS_OK) && (values_number > 0)) {
> @@ -160,7 +169,7 @@
>               }
>       }
>       else {
> -             LOG_ER("Node groups must contian at least one node");
> +             LOG_ER("Node groups must contain at least one node");
>               goto done;
>       }
>       if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfNGAdminState"),
> @@ -175,7 +184,8 @@
>               ng = nullptr;
>       }
>   
> -     TRACE_LEAVE();
> +     osafassert(ng != nullptr);
> +     TRACE_LEAVE2("%u", rc);
>       return ng;
>   }
>   
> @@ -186,7 +196,7 @@
>    */
>   static void ng_delete(AVD_AMF_NG *ng)
>   {
> -     nodegroup_db->erase(Amf::to_string(&ng->name));
> +     nodegroup_db->erase(ng->name);
>       delete ng;
>   }
>   
> @@ -231,15 +241,18 @@
>       }
>   
>       while (immutil_saImmOmSearchNext_2(searchHandle, &dn, 
> (SaImmAttrValuesT_2 ***)&attributes) == SA_AIS_OK) {
> -             if (!is_config_valid(&dn, attributes, nullptr)) {
> +
> +             if (is_config_valid(Amf::to_string(&dn), attributes, nullptr) 
> == false) {
> +                     TRACE("%s config is invalid", dn.value);
>                       error = SA_AIS_ERR_FAILED_OPERATION;
>                       goto done2;
>               }
>   
> -             if ((ng = ng_create(&dn, (const SaImmAttrValuesT_2 
> **)attributes)) == nullptr)
> +             if ((ng = ng_create(Amf::to_string(&dn), (const 
> SaImmAttrValuesT_2 **)attributes)) == nullptr) {
>                       goto done2;
> +             }
>   
> -             nodegroup_db->insert(Amf::to_string(&ng->name), ng);
> +             nodegroup_db->insert(ng->name, ng);
>       }
>   
>       rc = SA_AIS_OK;
> @@ -260,10 +273,9 @@
>    */
>   static bool su_is_mapped_to_node_via_nodegroup(const AVD_SU *su, const 
> AVD_AMF_NG *ng)
>   {
> -     if ((memcmp(&ng->name, &su->saAmfSUHostNodeOrNodeGroup, 
> sizeof(SaNameT)) == 0) ||
> -         (memcmp(&ng->name, &su->sg_of_su->saAmfSGSuHostNodeGroup, 
> sizeof(SaNameT)) == 0)) {
> -             
> -             TRACE("SU '%s' mapped using '%s'", su->name.value, 
> ng->name.value);
> +     if (ng->name.compare(su->saAmfSUHostNodeOrNodeGroup) == 0 ||
> +             ng->name.compare(su->sg_of_su->saAmfSGSuHostNodeGroup) == 0) {
> +             TRACE("SU '%s' mapped using '%s'", su->name.c_str(), 
> ng->name.c_str());
>               return true;
>       }
>   
> @@ -309,7 +321,7 @@
>   
>       TRACE_ENTER();
>   
> -     ng = avd_ng_get(&opdata->objectName);
> +     ng = avd_ng_get(Amf::to_string(&opdata->objectName));
>       if (ng == nullptr) {
>               report_ccb_validation_error(opdata, "ng modify: nodegroup 
> cannot be found");
>               goto done;
> @@ -330,19 +342,19 @@
>                       delete_found = 1;
>   
>                       for (j = 0; j < mod->modAttr.attrValuesNumber; j++) {
> -                             node = avd_node_get((SaNameT 
> *)mod->modAttr.attrValues[j]);
> +                             const std::string 
> node_name(Amf::to_string((SaNameT *)mod->modAttr.attrValues[j]));
> +                             node = avd_node_get(node_name);
>                               if (node == nullptr) {
>                                       report_ccb_validation_error(opdata, 
> "Node '%s' does not exist",
> -                                                     ((SaNameT 
> *)mod->modAttr.attrValues[j])->value);
> +                                                     node_name.c_str());
>                                       goto done;
>                               }
>   
> -                             TRACE("DEL %s", ((SaNameT 
> *)mod->modAttr.attrValues[j])->value);
> +                             TRACE("DEL %s", node_name.c_str());
>   
> -                             if (node_in_nodegroup(Amf::to_string((SaNameT 
> *)mod->modAttr.attrValues[j]),
> -                                             ng) == false) {
> +                             if (node_in_nodegroup(node_name, ng) == false) {
>                                       report_ccb_validation_error(opdata, "ng 
> modify: node '%s' does not exist in node group",
> -                                             ((SaNameT 
> *)mod->modAttr.attrValues[j])->value);
> +                                             node_name.c_str());
>                                       goto done;
>                               }
>                               
> @@ -350,12 +362,13 @@
>   
>                               /* for all OpenSAF SUs hosted by this node */
>                               for (const auto& su : node->list_of_ncs_su) {
> +                                     const SaNameTWrapper su_name(su->name);
>                                       if 
> (su_is_mapped_to_node_via_nodegroup(su, ng)) {
> -                                             t_opData = 
> ccbutil_getCcbOpDataByDN(opdata->ccbId, &su->name);
> +                                             t_opData = 
> ccbutil_getCcbOpDataByDN(opdata->ccbId, su_name);
>                                               if (t_opData == nullptr || 
> t_opData->operationType != CCBUTIL_DELETE) {
>                                                       
> report_ccb_validation_error(opdata, "Cannot delete '%s' from '%s'."
>                                                               " An SU is 
> mapped using node group",
> -                                                             
> node->name.value, ng->name.value);
> +                                                             
> node->name.c_str(), ng->name.c_str());
>                                                               goto done;
>                                               }
>                                       }
> @@ -363,12 +376,13 @@
>   
>                               /* for all application SUs hosted by this node 
> */
>                               for (const auto& su : node->list_of_su) {
> +                                     const SaNameTWrapper su_name(su->name);
>                                       if 
> (su_is_mapped_to_node_via_nodegroup(su, ng)) {
> -                                             t_opData = 
> ccbutil_getCcbOpDataByDN(opdata->ccbId, &su->name);
> +                                             t_opData = 
> ccbutil_getCcbOpDataByDN(opdata->ccbId, su_name);
>                                               if (t_opData == nullptr || 
> t_opData->operationType != CCBUTIL_DELETE) {
>                                                       
> report_ccb_validation_error(opdata, "Cannot delete '%s' from '%s'."
>                                                       " An SU is mapped using 
> node group",
> -                                                     node->name.value, 
> ng->name.value);
> +                                                     node->name.c_str(), 
> ng->name.c_str());
>                                                       goto done;
>                                               }
>                                       }
> @@ -393,7 +407,7 @@
>                       add_found = 1;
>   
>                       for (j = 0; j < mod->modAttr.attrValuesNumber; j++) {
> -                             node = avd_node_get((SaNameT 
> *)mod->modAttr.attrValues[j]);
> +                             node = avd_node_get(Amf::to_string((SaNameT 
> *)mod->modAttr.attrValues[j]));
>                               if ((node == nullptr) &&
>                                       
> (ccbutil_getCcbOpDataByDN(opdata->ccbId, (SaNameT 
> *)mod->modAttr.attrValues[j]) == nullptr)) {
>   
> @@ -431,9 +445,10 @@
>    *
>    * @return bool
>    */
> -static bool is_deleted_in_ccb(SaImmOiCcbIdT ccbId, const SaNameT *dn)
> +static bool is_deleted_in_ccb(SaImmOiCcbIdT ccbId, const std::string& dn)
>   {
> -     CcbUtilOperationData_t *opdata = ccbutil_getCcbOpDataByDN(ccbId, dn);
> +     const SaNameTWrapper dn_name(dn);
> +     CcbUtilOperationData_t *opdata = ccbutil_getCcbOpDataByDN(ccbId, 
> dn_name);
>   
>       if ((opdata != nullptr) && (opdata->operationType == CCBUTIL_DELETE))
>               return true;
> @@ -451,14 +466,14 @@
>   {
>       SaAisErrorT rc = SA_AIS_ERR_BAD_OPERATION;
>       AVD_AVND *node;
> -     AVD_AMF_NG *ng = avd_ng_get(&opdata->objectName);
> +     AVD_AMF_NG *ng = avd_ng_get(Amf::to_string(&opdata->objectName));
>   
>       TRACE_ENTER2("%u", ng->number_nodes());
>       std::set<std::string>::const_iterator iter;
>       if ((ng->saAmfNGAdminState != SA_AMF_ADMIN_LOCKED) &&
>                       (ng->saAmfNGAdminState != SA_AMF_ADMIN_UNLOCKED)) {
>               report_ccb_validation_error(opdata, "'%s' can be deleted in 
> locked or unlocked admin state",
> -                                     ng->name.value);
> +                                     ng->name.c_str());
>               goto done;
>       }
>       for (iter = ng->saAmfNGNodeList.begin();
> @@ -467,7 +482,7 @@
>   
>               node = avd_node_get(*iter);
>               
> -             TRACE("%s", node->name.value);
> +             TRACE("%s", node->name.c_str());
>   
>               /*
>               ** for all SUs hosted by this node, if any SU is mapped using
> @@ -478,18 +493,18 @@
>               */
>               for (const auto& su : node->list_of_ncs_su) {
>                       if (su_is_mapped_to_node_via_nodegroup(su, ng) &&
> -                             is_deleted_in_ccb(opdata->ccbId, &su->name) == 
> false) {
> +                             is_deleted_in_ccb(opdata->ccbId, su->name) == 
> false) {
>                               report_ccb_validation_error(opdata, "Cannot 
> delete '%s' because '%s' is mapped using it",
> -                                     ng->name.value, su->name.value);
> +                                     ng->name.c_str(), su->name.c_str());
>                               goto done;
>                       }
>               }
>   
>               for (const auto& su : node->list_of_su) {
>                       if (su_is_mapped_to_node_via_nodegroup(su, ng) &&
> -                             is_deleted_in_ccb(opdata->ccbId, &su->name) == 
> false) {
> +                             is_deleted_in_ccb(opdata->ccbId, su->name) == 
> false) {
>                               report_ccb_validation_error(opdata, "Cannot 
> delete '%s' because '%s' is mapped using it",
> -                                     ng->name.value, su->name.value);
> +                                     ng->name.c_str(), su->name.c_str());
>                               goto done;
>                       }
>               }
> @@ -514,7 +529,7 @@
>   
>       switch (opdata->operationType) {
>       case CCBUTIL_CREATE:
> -             if (is_config_valid(&opdata->objectName, 
> opdata->param.create.attrValues, opdata))
> +             if (is_config_valid(Amf::to_string(&opdata->objectName), 
> opdata->param.create.attrValues, opdata))
>                   rc = SA_AIS_OK;
>               break;
>       case CCBUTIL_MODIFY:
> @@ -545,7 +560,7 @@
>   
>       TRACE_ENTER();
>   
> -     ng = avd_ng_get(&opdata->objectName);
> +     ng = avd_ng_get(Amf::to_string(&opdata->objectName));
>   
>       while ((mod = opdata->param.modify.attrMods[i++]) != nullptr) {
>               switch (mod->modType) {
> @@ -577,7 +592,7 @@
>   static void ng_ccb_apply_delete_hdlr(CcbUtilOperationData_t *opdata)
>   {
>       TRACE_ENTER();
> -     AVD_AMF_NG *ng = avd_ng_get(&opdata->objectName);
> +     AVD_AMF_NG *ng = avd_ng_get(Amf::to_string(&opdata->objectName));
>       if (avd_cb->avail_state_avd != SA_AMF_HA_ACTIVE) {
>               //Since AMF will delete NG, clear its pointers in node.
>               for (std::set<std::string>::const_iterator iter = 
> ng->saAmfNGNodeList.begin();
> @@ -640,9 +655,9 @@
>   
>       switch (opdata->operationType) {
>       case CCBUTIL_CREATE:
> -             ng = ng_create(&opdata->objectName, 
> opdata->param.create.attrValues);
> +             ng = ng_create(Amf::to_string(&opdata->objectName), 
> opdata->param.create.attrValues);
>               osafassert(ng);
> -             nodegroup_db->insert(Amf::to_string(&ng->name), ng);
> +             nodegroup_db->insert(ng->name, ng);
>               break;
>       case CCBUTIL_MODIFY:
>               ng_ccb_apply_modify_hdlr(opdata);
> @@ -667,16 +682,16 @@
>       SaAmfAdminStateT old_state = ng->saAmfNGAdminState;
>       
>       osafassert(state <= SA_AMF_ADMIN_SHUTTING_DOWN);
> -     TRACE_ENTER2("%s AdmState %s => %s", ng->name.value,
> +     TRACE_ENTER2("%s AdmState %s => %s", ng->name.c_str(),
>                       avd_adm_state_name[old_state], 
> avd_adm_state_name[state]);
> -     saflog(LOG_NOTICE, amfSvcUsrName, "%s AdmState %s => %s", 
> ng->name.value,
> +     saflog(LOG_NOTICE, amfSvcUsrName, "%s AdmState %s => %s", 
> ng->name.c_str(),
>                     avd_adm_state_name[old_state], avd_adm_state_name[state]);
>       ng->saAmfNGAdminState = state;
> -     avd_saImmOiRtObjectUpdate(&ng->name,
> +     avd_saImmOiRtObjectUpdate(ng->name,
>                       const_cast<SaImmAttrNameT>("saAmfNGAdminState"),
>                       SA_IMM_ATTR_SAUINT32T, &ng->saAmfNGAdminState);
>       m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, ng, AVSV_CKPT_NG_ADMIN_STATE);
> -     avd_send_admin_state_chg_ntf(&ng->name,
> +     avd_send_admin_state_chg_ntf(ng->name,
>                       (SaAmfNotificationMinorIdT)SA_AMF_NTFID_NG_ADMIN_STATE,
>                       old_state, ng->saAmfNGAdminState);
>   }
> @@ -691,12 +706,12 @@
>       SaAisErrorT rc = SA_AIS_OK;
>   
>       if (node->admin_node_pend_cbk.admin_oper != 0) {
> -             LOG_NO("'%s' undergoing admin operation", node->name.value);
> +             LOG_NO("'%s' undergoing admin operation", node->name.c_str());
>               rc = SA_AIS_ERR_TRY_AGAIN;
>               goto done;
>       }
>       if (node->clm_pend_inv != 0) {
> -             LOG_NO("'%s' Clm operation going on", node->name.value);
> +             LOG_NO("'%s' Clm operation going on", node->name.c_str());
>               rc = SA_AIS_ERR_TRY_AGAIN;
>                   goto done;
>           }
> @@ -726,7 +741,7 @@
>               AVD_AVND *node = avd_node_get(*iter);
>               for (const auto& su : node->list_of_su) {
>                       //Make a temorary list_of_SG for later verification of 
> service outage.
> -                     tmp_sg_list.insert(Amf::to_string(&su->sg_of_su->name));
> +                     tmp_sg_list.insert(su->sg_of_su->name);
>               }
>       }
>       for (std::set<std::string>::const_iterator iter =  tmp_sg_list.begin();
> @@ -739,12 +754,12 @@
>               //As of now, AMF will throw only warning, but operation will 
> continue.  
>               if (sg->is_sg_serviceable_outside_ng(ng) == true)
>                       LOG_NO("service outage for '%s' because of 
> shutdown/lock "
> -                                     "on 
> '%s'",sg->name.value,ng->name.value);
> +                                     "on 
> '%s'",sg->name.c_str(),ng->name.c_str());
>   
>               if ((sg->sg_redundancy_model == SA_AMF_N_WAY_REDUNDANCY_MODEL) 
> ||
>                               (sg->sg_redundancy_model == 
> SA_AMF_NPM_REDUNDANCY_MODEL)) {
>                       LOG_NO("Admin op on '%s'  hosting SUs of '%s' with 
> redundancy '%u' "
> -                                     "is not supported",ng->name.value, 
> sg->name.value,
> +                                     "is not supported",ng->name.c_str(), 
> sg->name.c_str(),
>                                       sg->sg_redundancy_model);
>                       rc = SA_AIS_ERR_NOT_SUPPORTED;
>                       tmp_sg_list.clear();
> @@ -767,7 +782,7 @@
>       SaAisErrorT rc = SA_AIS_OK;
>               
>       if (ng->admin_ng_pend_cbk.admin_oper != 0) {
> -             LOG_NO("'%s' is already undergoing admin operation", 
> ng->name.value);
> +             LOG_NO("'%s' is already undergoing admin operation", 
> ng->name.c_str());
>               rc = SA_AIS_ERR_TRY_AGAIN;
>               goto done;
>       }
> @@ -791,7 +806,7 @@
>   void ng_complete_admin_op(AVD_AMF_NG *ng, SaAisErrorT result)
>   {
>       if (ng->admin_ng_pend_cbk.invocation != 0) {
> -             TRACE("Replying to IMM for admin op on '%s'", ng->name.value);
> +             TRACE("Replying to IMM for admin op on '%s'", ng->name.c_str());
>               avd_saImmOiAdminOperationResult(avd_cb->immOiHandle,
>                               ng->admin_ng_pend_cbk.invocation, result);
>               ng->admin_ng_pend_cbk.invocation = 0;
> @@ -814,10 +829,10 @@
>    */
>   void ng_node_lock_and_shutdown(AVD_AVND *node)
>   {
> -     TRACE_ENTER2("'%s'",node->name.value);
> +     TRACE_ENTER2("'%s'",node->name.c_str());
>       if (node->node_info.member == false) {
>               node_admin_state_set(node, SA_AMF_ADMIN_LOCKED);
> -             LOG_NO("%s' LOCK: CLM node is not member", node->name.value);
> +             LOG_NO("%s' LOCK: CLM node is not member", node->name.c_str());
>               return;
>       }
>       if (avd_cb->init_state == AVD_INIT_DONE) {
> @@ -834,7 +849,7 @@
>               su->sg_of_su->ng_admin(su, node->admin_ng);
>       }
>       if (node->su_cnt_admin_oper > 0)
> -             
> node->admin_ng->node_oper_list.insert(Amf::to_string(&node->name));
> +             node->admin_ng->node_oper_list.insert(node->name);
>       TRACE_LEAVE2("node_oper_list size:%u",node->admin_ng->oper_list_size());
>   }
>   /*
> @@ -848,7 +863,7 @@
>    */
>   static void ng_unlock(AVD_AMF_NG *ng)
>   {
> -     TRACE_ENTER2("'%s'",ng->name.value);
> +     TRACE_ENTER2("'%s'",ng->name.c_str());
>       for (std::set<std::string>::const_iterator iter = 
> ng->saAmfNGNodeList.begin();
>                       iter != ng->saAmfNGNodeList.end(); ++iter) {
>               AVD_AVND *node = avd_node_get(*iter);
> @@ -857,7 +872,7 @@
>                       continue;
>               node_admin_state_set(node, SA_AMF_ADMIN_UNLOCKED);
>               if (node->node_info.member == false) {
> -                     LOG_NO("'%s' UNLOCK: CLM node is not member", 
> node->name.value);
> +                     LOG_NO("'%s' UNLOCK: CLM node is not member", 
> node->name.c_str());
>                       continue;
>               }
>               node->admin_ng = ng;
> @@ -892,7 +907,7 @@
>                       avd_sg_app_su_inst_func(avd_cb, su->sg_of_su);
>               }
>               if (node->su_cnt_admin_oper > 0)
> -                     
> node->admin_ng->node_oper_list.insert(Amf::to_string(&node->name));
> +                     node->admin_ng->node_oper_list.insert(node->name);
>       }
>       TRACE_LEAVE2("node_oper_list size:%u",ng->oper_list_size());
>   }
> @@ -920,22 +935,22 @@
>   {
>       uint32_t su_try_inst;
>       std::set<std::string> tmp_sg_list;
> -     TRACE_ENTER2("%s", ng->name.value);
> +     TRACE_ENTER2("%s", ng->name.c_str());
>   
>       for (std::set<std::string>::const_iterator iter = 
> ng->saAmfNGNodeList.begin();
>                       iter != ng->saAmfNGNodeList.end(); ++iter) {
>               AVD_AVND *node = avd_node_get(*iter);
>                   node->su_cnt_admin_oper = 0;
>               if (node->node_info.member == false) {
> -                     LOG_NO("'%s' UNLOCK_INSTANTIATION: CLM node is not 
> member", node->name.value);
> +                     LOG_NO("'%s' UNLOCK_INSTANTIATION: CLM node is not 
> member", node->name.c_str());
>                       continue;
>               }
>               if (node->saAmfNodeOperState == SA_AMF_OPERATIONAL_DISABLED) {
> -                     LOG_NO("'%s' UNLOCK_INSTANTIATION: AMF node oper state 
> disabled", node->name.value);
> +                     LOG_NO("'%s' UNLOCK_INSTANTIATION: AMF node oper state 
> disabled", node->name.c_str());
>                       continue;
>               }
>               if (any_ng_in_locked_in_state(node) == true) {
> -                     LOG_NO("One of the node group of '%s' is in locked-in", 
> node->name.value);
> +                     LOG_NO("One of the node group of '%s' is in locked-in", 
> node->name.c_str());
>                       continue;
>               }
>               for (const auto& node_su : node->list_of_su) {
> @@ -945,7 +960,7 @@
>                       AVD_SG *sg = node_su->sg_of_su;
>   
>                       std::set<std::string>::const_iterator iter1 ;
> -                     iter1 = tmp_sg_list.find(Amf::to_string(&sg->name));
> +                     iter1 = tmp_sg_list.find(sg->name);
>                       if (iter1 != tmp_sg_list.end())
>                               continue;
>   
> @@ -953,7 +968,7 @@
>                       avd_sg_adjust_config(sg);
>                       for (const auto& su : sg->list_of_su) {
>                               //Continue if this SU is not hosted on the Node 
> of NG.
> -                             if 
> (node_in_nodegroup(Amf::to_string(&su->su_on_node->name), ng) == false)
> +                             if (node_in_nodegroup(su->su_on_node->name, ng) 
> == false)
>                                       continue;
>   
>                               if ((su->saAmfSUAdminState != 
> SA_AMF_ADMIN_LOCKED_INSTANTIATION) &&
> @@ -967,7 +982,7 @@
>   
>                                       if (sg->saAmfSGNumPrefInserviceSUs > 
> su_try_inst) {
>                                               if 
> (avd_snd_presence_msg(avd_cb, su, false) != NCSCC_RC_SUCCESS) {
> -                                                     LOG_NO("Failed to send 
> Instantiation of '%s'", su->name.value);
> +                                                     LOG_NO("Failed to send 
> Instantiation of '%s'", su->name.c_str());
>                                               } else {
>                                                       
> su->su_on_node->su_cnt_admin_oper++;
>                                                       su_try_inst++;
> @@ -975,12 +990,12 @@
>                                       }
>                               }
>                       }
> -                     tmp_sg_list.insert(Amf::to_string(&sg->name));
> +                     tmp_sg_list.insert(sg->name);
>               }
>               TRACE("node:'%s', su_cnt_admin_oper:%u",
> -                             node->name.value, node->su_cnt_admin_oper);
> +                             node->name.c_str(), node->su_cnt_admin_oper);
>               if (node->su_cnt_admin_oper > 0)
> -                     ng->node_oper_list.insert(Amf::to_string(&node->name));
> +                     ng->node_oper_list.insert(node->name);
>       }
>       TRACE("node_oper_list size:%u",ng->oper_list_size());
>       TRACE_LEAVE();
> @@ -1000,7 +1015,7 @@
>               const SaImmAdminOperationParamsT_2 **params)
>   {
>       SaAisErrorT rc = SA_AIS_OK;
> -     AVD_AMF_NG *ng = avd_ng_get(ng_name);   
> +     AVD_AMF_NG *ng = avd_ng_get(Amf::to_string(ng_name));   
>       TRACE_ENTER2("'%s', inv:'%llu', 
> op:'%llu'",ng_name->value,invocation,op_id);
>   
>       switch(op_id) {
> @@ -1017,13 +1032,13 @@
>               if (ng->saAmfNGAdminState == SA_AMF_ADMIN_LOCKED_INSTANTIATION) 
> {
>                       report_admin_op_error(avd_cb->immOiHandle, invocation, 
> SA_AIS_ERR_NO_OP, nullptr,
>                                             "'%s' Invalid Admin Operation 
> LOCK INSTANTIATION in state %s",
> -                                           ng->name.value, 
> avd_adm_state_name[ng->saAmfNGAdminState]);
> +                                           ng->name.c_str(), 
> avd_adm_state_name[ng->saAmfNGAdminState]);
>                       goto done;
>               }
>               if (ng->saAmfNGAdminState != SA_AMF_ADMIN_LOCKED) {
>                       report_admin_op_error(avd_cb->immOiHandle, invocation, 
> SA_AIS_ERR_BAD_OPERATION, nullptr,
>                                             "'%s' Invalid Admin Operation 
> LOCK_INSTANTIATION in state %s",
> -                                           ng->name.value, 
> avd_adm_state_name[ng->saAmfNGAdminState]);
> +                                           ng->name.c_str(), 
> avd_adm_state_name[ng->saAmfNGAdminState]);
>                       goto done;
>               }
>               rc = check_red_model_service_outage(ng);
> @@ -1053,22 +1068,22 @@
>                    iter != ng->saAmfNGNodeList.end(); ++iter) {
>                       AVD_AVND *node = avd_node_get(*iter);
>                       if (node->node_info.member == false) {
> -                             LOG_NO("'%s' LOCK_INSTANTIATION: CLM node is 
> not member", node->name.value);
> +                             LOG_NO("'%s' LOCK_INSTANTIATION: CLM node is 
> not member", node->name.c_str());
>                               continue;
>                       }
>                       if (node->saAmfNodeOperState == 
> SA_AMF_OPERATIONAL_DISABLED) {
> -                             LOG_NO("'%s' LOCK_INSTANTIATION: AMF node oper 
> state disabled", node->name.value);
> +                             LOG_NO("'%s' LOCK_INSTANTIATION: AMF node oper 
> state disabled", node->name.c_str());
>                               continue;
>                       }
>                       if (node->saAmfNodeAdminState != 
> SA_AMF_ADMIN_LOCKED_INSTANTIATION) {
> -                             LOG_NO("'%s' LOCK_INSTANTIATION: AMF node admin 
> state is not LOCKED", node->name.value);
> +                             LOG_NO("'%s' LOCK_INSTANTIATION: AMF node admin 
> state is not LOCKED", node->name.c_str());
>                               continue;
>                       }
>                       avd_node_admin_lock_instantiation(node);
>                       TRACE("node:'%s', su_cnt_admin_oper:%u",
> -                                     node->name.value, 
> node->su_cnt_admin_oper);
> +                                     node->name.c_str(), 
> node->su_cnt_admin_oper);
>                       if (node->su_cnt_admin_oper > 0)
> -                             
> ng->node_oper_list.insert(Amf::to_string(&node->name));
> +                             ng->node_oper_list.insert(node->name);
>               }
>               TRACE("node_oper_list size:%u",ng->oper_list_size());
>               if (ng->node_oper_list.empty())
> @@ -1086,14 +1101,14 @@
>               }
>               if (ng->saAmfNGAdminState == SA_AMF_ADMIN_LOCKED) {
>                       report_admin_op_error(avd_cb->immOiHandle, invocation, 
> SA_AIS_ERR_NO_OP, nullptr,
> -                                           "'%s' Already in LOCKED state", 
> ng->name.value);
> +                                           "'%s' Already in LOCKED state", 
> ng->name.c_str());
>                       goto done;
>               }
>   
>               if (ng->saAmfNGAdminState != SA_AMF_ADMIN_LOCKED_INSTANTIATION) 
> {
>                       report_admin_op_error(avd_cb->immOiHandle, invocation, 
> SA_AIS_ERR_BAD_OPERATION, nullptr,
>                                             "'%s' Invalid Admin Operation 
> UNLOCK_INSTANTIATION in state %s",
> -                                           ng->name.value, 
> avd_adm_state_name[ng->saAmfNGAdminState]);
> +                                           ng->name.c_str(), 
> avd_adm_state_name[ng->saAmfNGAdminState]);
>                       goto done;
>               }
>               rc = check_red_model_service_outage(ng);
> @@ -1136,13 +1151,13 @@
>               }
>               if (ng->saAmfNGAdminState == SA_AMF_ADMIN_LOCKED) {
>                           report_admin_op_error(avd_cb->immOiHandle, 
> invocation, SA_AIS_ERR_NO_OP, nullptr,
> -                                        "'%s' Already in LOCKED state", 
> ng->name.value);
> +                                        "'%s' Already in LOCKED state", 
> ng->name.c_str());
>                           goto done;
>                   }
>               if (ng->saAmfNGAdminState == SA_AMF_ADMIN_LOCKED_INSTANTIATION) 
> {
>                       report_admin_op_error(avd_cb->immOiHandle, invocation, 
> SA_AIS_ERR_BAD_OPERATION, nullptr,
>                                       "'%s' Invalid Admin Operation LOCK in 
> state %s",
> -                                     ng->name.value, 
> avd_adm_state_name[ng->saAmfNGAdminState]);
> +                                     ng->name.c_str(), 
> avd_adm_state_name[ng->saAmfNGAdminState]);
>                       goto done;
>               }
>               rc = check_red_model_service_outage(ng);
> @@ -1189,13 +1204,13 @@
>               }
>               if (ng->saAmfNGAdminState == SA_AMF_ADMIN_SHUTTING_DOWN) {
>                       report_admin_op_error(avd_cb->immOiHandle, invocation, 
> SA_AIS_ERR_NO_OP, nullptr,
> -                                     "'%s' Already in SHUTTING DOWN state", 
> ng->name.value);
> +                                     "'%s' Already in SHUTTING DOWN state", 
> ng->name.c_str());
>                       goto done;
>               }
>               if (ng->saAmfNGAdminState != SA_AMF_ADMIN_UNLOCKED) {
>                       report_admin_op_error(avd_cb->immOiHandle, invocation, 
> SA_AIS_ERR_BAD_OPERATION, nullptr,
>                                       "'%s' Invalid Admin Operation SHUTDOWN 
> in state %s",
> -                                     ng->name.value, 
> avd_adm_state_name[ng->saAmfNGAdminState]);
> +                                     ng->name.c_str(), 
> avd_adm_state_name[ng->saAmfNGAdminState]);
>                       goto done;
>               }
>               rc = check_red_model_service_outage(ng);
> @@ -1253,13 +1268,13 @@
>               }
>               if (ng->saAmfNGAdminState == SA_AMF_ADMIN_UNLOCKED) {
>                       report_admin_op_error(avd_cb->immOiHandle, invocation, 
> SA_AIS_ERR_NO_OP, nullptr,
> -                                     "'%s' Already in UNLOCKED state", 
> ng->name.value);
> +                                     "'%s' Already in UNLOCKED state", 
> ng->name.c_str());
>                           goto done;
>               }
>               if (ng->saAmfNGAdminState != SA_AMF_ADMIN_LOCKED) {
>                       report_admin_op_error(avd_cb->immOiHandle, invocation, 
> SA_AIS_ERR_BAD_OPERATION, nullptr,
>                                       "'%s' Invalid Admin Operation UNLOCK in 
> state %s",
> -                                        ng->name.value, 
> avd_adm_state_name[ng->saAmfNGAdminState]);
> +                                        ng->name.c_str(), 
> avd_adm_state_name[ng->saAmfNGAdminState]);
>                           goto done;
>                   }
>               ng->admin_ng_pend_cbk.invocation = invocation;
> diff --git a/osaf/services/saf/amf/amfd/nodeswbundle.cc 
> b/osaf/services/saf/amf/amfd/nodeswbundle.cc
> --- a/osaf/services/saf/amf/amfd/nodeswbundle.cc
> +++ b/osaf/services/saf/amf/amfd/nodeswbundle.cc
> @@ -31,21 +31,21 @@
>    *
>    * @return int
>    */
> -static int is_config_valid(const SaNameT *dn, const SaImmAttrValuesT_2 
> **attributes,
> +static int is_config_valid(const std::string& dn, const SaImmAttrValuesT_2 
> **attributes,
>       const CcbUtilOperationData_t *opdata)
>   {
> -     const char *parent;
> +     std::string parent;
>       const char *path_prefix;
>   
> -     parent = avd_getparent((char*)dn->value);
> -     if (parent == nullptr) {
> -             report_ccb_validation_error(opdata, "No parent to '%s' ", 
> dn->value);
> +     parent = avd_getparent(dn);
> +     if (parent.empty() == true) {
> +             report_ccb_validation_error(opdata, "No parent to '%s' ", 
> dn.c_str());
>               return 0;
>       }
>   
>       /* Should be children to nodes */
> -     if (strncmp(parent, "safAmfNode=", 11) != 0) {
> -             report_ccb_validation_error(opdata, "Wrong parent '%s' to '%s' 
> ", parent, dn->value);
> +     if (parent.compare(0, 11, "safAmfNode=") != 0) {
> +             report_ccb_validation_error(opdata, "Wrong parent '%s' to '%s' 
> ", parent.c_str(), dn.c_str());
>               return 0;
>       }
>   
> @@ -53,7 +53,7 @@
>       osafassert(path_prefix);
>   
>       if (path_prefix[0] != '/') {
> -             report_ccb_validation_error(opdata, "Invalid absolute path '%s' 
> for '%s' ", path_prefix, dn->value);
> +             report_ccb_validation_error(opdata, "Invalid absolute path '%s' 
> for '%s' ", path_prefix, dn.c_str());
>               return 0;
>       }
>   
> @@ -68,24 +68,26 @@
>    *
>    * @return int
>    */
> -static int is_swbdl_delete_ok_for_node(const SaNameT *bundle_dn_to_delete,
> -     const SaNameT *node_dn, const std::vector<AVD_SU*> &su_list, 
> CcbUtilOperationData_t *opdata)
> +static int is_swbdl_delete_ok_for_node(const std::string& 
> bundle_dn_to_delete,
> +     const std::string& node_dn, const std::vector<AVD_SU*> &su_list, 
> CcbUtilOperationData_t *opdata)
>   {
>       SaNameT bundle_dn;
> +     const SaNameTWrapper node(node_dn);
>   
>       for (const auto& su : su_list) {
>               for (const auto& comp : su->list_of_comp) {
> -                     
> avsv_create_association_class_dn(&comp->comp_type->saAmfCtSwBundle,
> -                             node_dn, "safInstalledSwBundle", &bundle_dn);
> +                     const SaNameTWrapper 
> sw_bundle(comp->comp_type->saAmfCtSwBundle);
> +                     avsv_create_association_class_dn(sw_bundle,
> +                             node, "safInstalledSwBundle", &bundle_dn);
>   
> -                     if (memcmp(bundle_dn_to_delete, &bundle_dn, 
> sizeof(SaNameT)) == 0) {
> +                     if 
> (bundle_dn_to_delete.compare(Amf::to_string(&bundle_dn)) == 0) {
>                               if (su->su_on_node->node_state == 
> AVD_AVND_STATE_ABSENT ||
>                                   (!su->sg_of_su->sg_ncs_spec &&
>                                    (comp->su->saAmfSUAdminState == 
> SA_AMF_ADMIN_LOCKED_INSTANTIATION))) {
>                                       continue;
>                               } else {
>                                       report_ccb_validation_error(opdata, 
> "'%s' admin state is not locked instantiaion",
> -                                                     su->name.value);
> +                                                     su->name.c_str());
>                                       return 0;
>                               }
>                       }
> @@ -101,19 +103,19 @@
>    *
>    * @return int
>    */
> -static int is_swbdl_delete_ok(const SaNameT *bundle_dn, 
> CcbUtilOperationData_t *opdata)
> +static int is_swbdl_delete_ok(const std::string& bundle_dn, 
> CcbUtilOperationData_t *opdata)
>   {
>       const AVD_AVND *node;
> -     SaNameT node_dn;
> +     std::string node_dn;
>   
>       /* Check if any comps are referencing this bundle */
> -     avsv_sanamet_init(bundle_dn, &node_dn, "safAmfNode=");
> -     node = avd_node_get(&node_dn);
> +     avsv_sanamet_init(bundle_dn, node_dn, "safAmfNode=");
> +     node = avd_node_get(node_dn);
>   
> -     if (!is_swbdl_delete_ok_for_node(bundle_dn, &node_dn, 
> node->list_of_ncs_su, opdata))
> +     if (!is_swbdl_delete_ok_for_node(bundle_dn, node_dn, 
> node->list_of_ncs_su, opdata))
>               return 0;
>   
> -     if (!is_swbdl_delete_ok_for_node(bundle_dn, &node_dn, node->list_of_su, 
> opdata))
> +     if (!is_swbdl_delete_ok_for_node(bundle_dn, node_dn, node->list_of_su, 
> opdata))
>               return 0;
>   
>       return 1;
> @@ -127,14 +129,14 @@
>   
>       switch (opdata->operationType) {
>       case CCBUTIL_CREATE:
> -             if (is_config_valid(&opdata->objectName, 
> opdata->param.create.attrValues, opdata))
> +             if (is_config_valid(Amf::to_string(&opdata->objectName), 
> opdata->param.create.attrValues, opdata))
>                       rc = SA_AIS_OK;
>               break;
>       case CCBUTIL_MODIFY:
>               report_ccb_validation_error(opdata, "Modification of 
> SaAmfNodeSwBundle not supported");
>               break;
>       case CCBUTIL_DELETE:
> -             if (is_swbdl_delete_ok(&opdata->objectName, opdata))
> +             if (is_swbdl_delete_ok(Amf::to_string(&opdata->objectName), 
> opdata))
>                       rc = SA_AIS_OK;
>               break;
>       default:
> diff --git a/osaf/services/saf/amf/amfd/ntf.cc 
> b/osaf/services/saf/amf/amfd/ntf.cc
> --- a/osaf/services/saf/amf/amfd/ntf.cc
> +++ b/osaf/services/saf/amf/amfd/ntf.cc
> @@ -39,22 +39,23 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -void avd_send_comp_inst_failed_alarm(const SaNameT *comp_name, const SaNameT 
> *node_name)
> +void avd_send_comp_inst_failed_alarm(const std::string& comp_name, const 
> std::string& node_name)
>   {
>       char add_text[ADDITION_TEXT_LENGTH];
> +     const SaNameTWrapper node(node_name);
>   
>       TRACE_ENTER();
>   
>       snprintf(add_text, ADDITION_TEXT_LENGTH, "Instantiation of Component %s 
> failed",
> -                     comp_name->value);
> +                     comp_name.c_str());
>       sendAlarmNotificationAvd(avd_cb,
> -                              *comp_name,
> +                              comp_name,
>                                (SaUint8T*)add_text,
>                                SA_SVC_AMF,
>                                SA_AMF_NTFID_COMP_INSTANTIATION_FAILED,
>                                SA_NTF_SOFTWARE_ERROR,
>                                SA_NTF_SEVERITY_MAJOR,
> -                              (NCSCONTEXT)node_name,
> +                              (NCSCONTEXT)(static_cast<const 
> SaNameT*>(node)),
>                                true /* add_info is node_name */);
>   }
>   
> @@ -71,22 +72,23 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -void avd_send_comp_clean_failed_alarm(const SaNameT *comp_name, const 
> SaNameT *node_name)
> +void avd_send_comp_clean_failed_alarm(const std::string& comp_name, const 
> std::string& node_name)
>   {
>       char  add_text[ADDITION_TEXT_LENGTH];
>   
>       TRACE_ENTER();
>   
>       snprintf(add_text, ADDITION_TEXT_LENGTH, "Cleanup of Component %s 
> failed",
> -                     comp_name->value);
> +                     comp_name.c_str());
> +     const SaNameTWrapper node(node_name);
>       sendAlarmNotificationAvd(avd_cb,
> -                              *comp_name,
> +                              comp_name,
>                                (SaUint8T*)add_text,
>                                SA_SVC_AMF,
>                                SA_AMF_NTFID_COMP_CLEANUP_FAILED,
>                                SA_NTF_SOFTWARE_ERROR,
>                                SA_NTF_SEVERITY_MAJOR,
> -                              (NCSCONTEXT)node_name,
> +                              (NCSCONTEXT)static_cast<const SaNameT*>(node),
>                                true /* add_info is node_name */);
>   
>   }
> @@ -105,16 +107,16 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -void avd_send_cluster_reset_alarm(const SaNameT *comp_name)
> +void avd_send_cluster_reset_alarm(const std::string& comp_name)
>   {
>       char add_text[ADDITION_TEXT_LENGTH];
>   
>       TRACE_ENTER();
>   
>       snprintf(add_text, ADDITION_TEXT_LENGTH, "Failure of Component %s 
> triggered"
> -                     " cluster reset", comp_name->value);
> +                     " cluster reset", comp_name.c_str());
>       sendAlarmNotificationAvd(avd_cb,
> -                              *comp_name,
> +                              comp_name,
>                                (SaUint8T*)add_text,
>                                SA_SVC_AMF,
>                                SA_AMF_NTFID_CLUSTER_RESET,
> @@ -136,16 +138,16 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -void avd_send_si_unassigned_alarm(const SaNameT *si_name)
> +void avd_send_si_unassigned_alarm(const std::string& si_name)
>   {
>       char add_text[ADDITION_TEXT_LENGTH];
>   
>       TRACE_ENTER();
>       
>       snprintf(add_text, ADDITION_TEXT_LENGTH, "SI designated by %s has no 
> current "
> -                     "active assignments to any SU", si_name->value);
> +                     "active assignments to any SU", si_name.c_str());
>       sendAlarmNotificationAvd(avd_cb,
> -                              *si_name,
> +                              si_name,
>                                (SaUint8T*)add_text,
>                                SA_SVC_AMF,
>                                SA_AMF_NTFID_SI_UNASSIGNED,
> @@ -168,16 +170,16 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -void avd_send_comp_proxy_status_unproxied_alarm(const SaNameT *comp_name)
> +void avd_send_comp_proxy_status_unproxied_alarm(const std::string& comp_name)
>   {
>       char add_text[ADDITION_TEXT_LENGTH];
>   
>       TRACE_ENTER();
>   
>       snprintf(add_text, ADDITION_TEXT_LENGTH, "Component %s become orphan",
> -                     comp_name->value);
> +                     comp_name.c_str());
>       sendAlarmNotificationAvd(avd_cb,
> -                              *comp_name,
> +                              comp_name,
>                                (SaUint8T*)add_text,
>                                SA_SVC_AMF,
>                                SA_AMF_NTFID_COMP_UNPROXIED,
> @@ -202,16 +204,16 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -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)
>   {
>       char add_text[ADDITION_TEXT_LENGTH];
>   
>       TRACE_ENTER();
>   
> -     snprintf(add_text, ADDITION_TEXT_LENGTH, "Admin state of %s changed", 
> name->value);
> +     snprintf(add_text, ADDITION_TEXT_LENGTH, "Admin state of %s changed", 
> name.c_str());
>       sendStateChangeNotificationAvd(avd_cb,
> -                                     *name,
> +                                     name,
>                                       (SaUint8T*)add_text,
>                                       SA_SVC_AMF,
>                                       minor_id,
> @@ -239,16 +241,16 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -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)
>   {
>       char add_text[ADDITION_TEXT_LENGTH];
>   
>       TRACE_ENTER();
>   
> -     snprintf(add_text, ADDITION_TEXT_LENGTH, "Oper state %s changed", 
> name->value);
> +     snprintf(add_text, ADDITION_TEXT_LENGTH, "Oper state %s changed", 
> name.c_str());
>       sendStateChangeNotificationAvd(avd_cb,
> -                                     *name,
> +                                     name,
>                                       (SaUint8T*)add_text,
>                                       SA_SVC_AMF,
>                                       minor_id,
> @@ -274,7 +276,7 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -void avd_send_su_pres_state_chg_ntf(const SaNameT *su_name,
> +void avd_send_su_pres_state_chg_ntf(const std::string& su_name,
>               SaAmfPresenceStateT old_state, SaAmfPresenceStateT new_state)
>   {
>       char add_text[ADDITION_TEXT_LENGTH];
> @@ -282,9 +284,9 @@
>       TRACE_ENTER();
>   
>       snprintf(add_text, ADDITION_TEXT_LENGTH, "Presence state of SU %s 
> changed",
> -                     su_name->value);
> +                     su_name.c_str());
>       sendStateChangeNotificationAvd(avd_cb,
> -                                     *su_name,
> +                                     su_name,
>                                       (SaUint8T*)add_text,
>                                       SA_SVC_AMF,
>                                       SA_AMF_NTFID_SU_PRESENCE_STATE,
> @@ -312,19 +314,20 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -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)
>   {
>       char add_text[ADDITION_TEXT_LENGTH];
> +     const SaNameTWrapper si(si_name);
>   
>       TRACE_ENTER();
>   
>       snprintf(add_text, ADDITION_TEXT_LENGTH, "The HA state of SI %s 
> assigned to SU %s changed",
> -                     si_name->value, su_name->value);
> +                     si_name.c_str(), su_name.c_str());
>       sendStateChangeNotificationAvd(avd_cb,
> -                                     *su_name,
> +                                     su_name,
>                                       (SaUint8T*)add_text,
>                                       SA_SVC_AMF,
>                                       SA_AMF_NTFID_SU_SI_HA_STATE,
> @@ -332,7 +335,7 @@
>                                       SA_AMF_HA_STATE,
>                                       old_state,
>                                       new_state,
> -                                     (NCSCONTEXT)si_name,
> +                                     (NCSCONTEXT)static_cast<const 
> SaNameT*>(si),
>                                       true /* Si_name */);
>   
>       TRACE_LEAVE();
> @@ -353,7 +356,7 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -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)
>   {
>       char add_text[ADDITION_TEXT_LENGTH];
> @@ -361,9 +364,10 @@
>       TRACE_ENTER();
>   
>       snprintf(add_text, ADDITION_TEXT_LENGTH, "The HA readiness state of SI 
> %s assigned"
> -                     " to SU %s changed", si_name->value, su_name->value);
> +                     " to SU %s changed", si_name.c_str(), su_name.c_str());
> +     const SaNameTWrapper si(si_name);
>       sendStateChangeNotificationAvd(avd_cb,
> -                                     *su_name,
> +                                     su_name,
>                                       (SaUint8T*)add_text,
>                                       SA_SVC_AMF,
>                                       SA_AMF_NTFID_SU_SI_HA_READINESS_STATE,
> @@ -371,7 +375,7 @@
>                                       SA_AMF_HA_READINESS_STATE,
>                                       old_state,
>                                       new_state,
> -                                     (NCSCONTEXT)si_name,
> +                                     (NCSCONTEXT)static_cast<const 
> SaNameT*>(si),
>                                       true /* Si_name */);
>   
>   }
> @@ -389,16 +393,16 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -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)
>   {
>       char add_text[ADDITION_TEXT_LENGTH];
>   
>       TRACE_ENTER();
>   
> -     snprintf(add_text, ADDITION_TEXT_LENGTH, "The Assignment state of SI %s 
> changed", si_name->value);
> +     snprintf(add_text, ADDITION_TEXT_LENGTH, "The Assignment state of SI %s 
> changed", si_name.c_str());
>       sendStateChangeNotificationAvd(avd_cb,
> -                                     *si_name,
> +                                     si_name,
>                                       (SaUint8T*)add_text,
>                                       SA_SVC_AMF,
>                                       SA_AMF_NTFID_SI_ASSIGNMENT_STATE,
> @@ -426,17 +430,17 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -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_status, SaAmfProxyStatusT new_status)
>   {
>       char add_text[ADDITION_TEXT_LENGTH];
>   
>       TRACE_ENTER();
>   
> -     snprintf(add_text, ADDITION_TEXT_LENGTH, "Component %s is now proxied", 
> comp_name->value);
> +     snprintf(add_text, ADDITION_TEXT_LENGTH, "Component %s is now proxied", 
> comp_name.c_str());
>   
>       sendStateChangeNotificationAvd(avd_cb,
> -                                     *comp_name,
> +                                     comp_name,
>                                       (SaUint8T*)add_text,
>                                       SA_SVC_AMF,
>                                       SA_AMF_NTFID_COMP_PROXY_STATUS,
> @@ -463,15 +467,15 @@
>   
>     Notes         :
>   
> *****************************************************************************/
> -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)
>   {
>          char add_text[ADDITION_TEXT_LENGTH];
>   
>          TRACE_ENTER();
> -       snprintf(add_text, ADDITION_TEXT_LENGTH, "Previous raised alarm of %s 
> is now cleared", name->value);
> +       snprintf(add_text, ADDITION_TEXT_LENGTH, "Previous raised alarm of %s 
> is now cleared", name.c_str());
>   
>          sendAlarmNotificationAvd(avd_cb,
> -            *name,
> +            name,
>              (SaUint8T*)add_text,
>              SA_SVC_AMF,
>              minorId,
> @@ -552,7 +556,7 @@
>   }
>   
>   uint32_t sendAlarmNotificationAvd(AVD_CL_CB *avd_cb,
> -                            const SaNameT &ntf_object,
> +                            const std::string& ntf_object,
>                              SaUint8T *add_text,
>                              SaUint16T majorId,
>                              SaUint16T minorId,
> @@ -565,10 +569,11 @@
>       SaNtfAlarmNotificationT myAlarmNotification;
>       SaUint16T add_info_items = 0;
>       SaUint64T allocation_size = 0;
> +     const SaNameTWrapper object_name(ntf_object);
>   
>       if (!avd_cb->active_services_exist) {
>               // TODO #3051
> -             LOG_ER("Alarm lost for %s", ntf_object.value);
> +             LOG_ER("Alarm lost for %s", ntf_object.c_str());
>               return status;
>       }
>   
> @@ -600,7 +605,7 @@
>   
>       status = 
> fill_ntf_header_part_avd(&myAlarmNotification.notificationHeader,
>                                SA_NTF_ALARM_PROCESSING,
> -                              ntf_object,
> +                              object_name,
>                                add_text,
>                                majorId,
>                                minorId,
> @@ -638,7 +643,7 @@
>   }
>   
>   uint32_t sendStateChangeNotificationAvd(AVD_CL_CB *avd_cb,
> -                                  const SaNameT &ntf_object,
> +                                  const std::string& ntf_object,
>                                    SaUint8T *add_text,
>                                    SaUint16T majorId,
>                                    SaUint16T minorId,
> @@ -654,10 +659,11 @@
>       SaUint16T add_info_items = 0;
>       SaUint64T allocation_size = 0;
>       SaUint16T num_of_changedStates = 1;
> +     const SaNameTWrapper object_name(ntf_object);
>   
>       if (!avd_cb->active_services_exist) {
>               // TODO #3051
> -             LOG_WA("State change notification lost for '%s'", 
> ntf_object.value);
> +             LOG_WA("State change notification lost for '%s'", 
> ntf_object.c_str());
>               return status;
>       }
>       if (additional_info_is_present == true) {
> @@ -692,7 +698,7 @@
>   
>       status = 
> fill_ntf_header_part_avd(&myStateNotification.notificationHeader,
>                                SA_NTF_OBJECT_STATE_CHANGE,
> -                              ntf_object,
> +                              object_name,
>                                add_text,
>                                majorId,
>                                minorId,
> @@ -736,7 +742,7 @@
>   }
>   
>   
> -void avd_send_error_report_ntf(const SaNameT *name, 
> SaAmfRecommendedRecoveryT recovery)
> +void avd_send_error_report_ntf(const std::string& name, 
> SaAmfRecommendedRecoveryT recovery)
>   {
>   
>       TRACE_ENTER();
> @@ -745,18 +751,18 @@
>       bool additional_info_is_present;
>   
>       if ((recovery >= SA_AMF_NO_RECOMMENDATION) && (recovery < 
> SA_AMF_CONTAINER_RESTART)) {
> -             snprintf(add_text, ADDITION_TEXT_LENGTH, "Error reported on %s 
> with recovery %s", name->value,
> +             snprintf(add_text, ADDITION_TEXT_LENGTH, "Error reported on %s 
> with recovery %s", name.c_str(),
>                               amf_recovery[recovery]);
>               minorid = SA_AMF_NTFID_ERROR_REPORT;
>               additional_info_is_present = true;
>       } else {
> -             snprintf(add_text, ADDITION_TEXT_LENGTH, "Error reported on %s 
> is now cleared", name->value);
> +             snprintf(add_text, ADDITION_TEXT_LENGTH, "Error reported on %s 
> is now cleared", name.c_str());
>               minorid = SA_AMF_NTFID_ERROR_CLEAR;
>               additional_info_is_present = false;
>       }
>   
>       sendStateChangeNotificationAvd(avd_cb,
> -                     *name,
> +                     name,
>                       (SaUint8T*)add_text,
>                       SA_SVC_AMF,
>                       minorid,
> diff --git a/osaf/services/saf/amf/amfd/pg.cc 
> b/osaf/services/saf/amf/amfd/pg.cc
> --- a/osaf/services/saf/amf/amfd/pg.cc
> +++ b/osaf/services/saf/amf/amfd/pg.cc
> @@ -170,7 +170,7 @@
>            csi_node; csi_node = (AVD_PG_CSI_NODE 
> *)m_NCS_DBLIST_FIND_NEXT(&csi_node->csi_dll_node)) {
>               rc = avd_snd_pg_upd_msg(cb, csi_node->node, comp_csi,
>                                       (true == is_rmv) ? 
> SA_AMF_PROTECTION_GROUP_REMOVED :
> -                                     SA_AMF_PROTECTION_GROUP_ADDED, 0);
> +                                     SA_AMF_PROTECTION_GROUP_ADDED, 
> std::string(""));
>       }                       /* for */
>       TRACE_LEAVE2("%u", rc);
>       return rc;


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to