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