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
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to