osaf/services/saf/amf/amfd/app.cc        |  11 +++++------
 osaf/services/saf/amf/amfd/apptype.cc    |   6 +++++-
 osaf/services/saf/amf/amfd/ckpt_dec.cc   |   8 +++++++-
 osaf/services/saf/amf/amfd/ckpt_enc.cc   |  11 +++++++++--
 osaf/services/saf/amf/amfd/ckpt_updt.cc  |   6 +++---
 osaf/services/saf/amf/amfd/include/app.h |   2 +-
 osaf/services/saf/amf/amfd/sg.cc         |   6 +++++-
 osaf/services/saf/amf/amfd/si.cc         |   6 +++++-
 osaf/services/saf/amf/amfd/util.cc       |   2 +-
 9 files changed, 41 insertions(+), 17 deletions(-)


diff --git a/osaf/services/saf/amf/amfd/app.cc 
b/osaf/services/saf/amf/amfd/app.cc
--- a/osaf/services/saf/amf/amfd/app.cc
+++ b/osaf/services/saf/amf/amfd/app.cc
@@ -29,15 +29,14 @@ AmfDb<std::string, AVD_APP> *app_db = 0;
 static AVD_APP *avd_app_new(const SaNameT *dn)
 {
        AVD_APP *app = new AVD_APP();
-       memcpy(app->name.value, dn->value, dn->length);
-       app->name.length = dn->length;
+       app->name_ = std::string((char*)dn->value, dn->length);
        return app;
 }
 
 // TODO(hafe) change this to a destructor
 static void avd_app_delete(AVD_APP *app)
 {
-       app_db->erase(Amf::to_string(&app->name));
+       app_db->erase(app->name_);
        m_AVSV_SEND_CKPT_UPDT_ASYNC_RMV(avd_cb, app, AVSV_CKPT_AVD_APP_CONFIG);
        avd_apptype_remove_app(app);
        delete app;
@@ -45,7 +44,7 @@ static void avd_app_delete(AVD_APP *app)
 
 static void app_add_to_model(AVD_APP *app)
 {
-       TRACE_ENTER2("%s", app->name.value);
+       TRACE_ENTER2("%s", app->name_.c_str());
 
        /* Check type link to see if it has been added already */
        if (app->app_type != NULL) {
@@ -53,7 +52,7 @@ static void app_add_to_model(AVD_APP *ap
                goto done;
        }
 
-       app_db->insert(Amf::to_string(&app->name), app);
+       app_db->insert(app->name_, app);
 
        /* Find application type and make a link with app type */
        app->app_type = avd_apptype_get(&app->saAmfAppType);
@@ -294,7 +293,7 @@ static void app_ccb_apply_cb(CcbUtilOper
 
                        if (!strcmp(attribute->attrName, "saAmfAppType")) {
                                LOG_NO("Modified saAmfAppType from '%s' to '%s' 
for '%s'", app->saAmfAppType.value,
-                                               
(*((SaNameT*)attribute->attrValues[0])).value, app->name.value);
+                                               
(*((SaNameT*)attribute->attrValues[0])).value, app->name_.c_str());
                                avd_apptype_remove_app(app);
                                app->saAmfAppType = 
*((SaNameT*)attribute->attrValues[0]);
                                app->app_type = 
avd_apptype_get(&app->saAmfAppType);
diff --git a/osaf/services/saf/amf/amfd/apptype.cc 
b/osaf/services/saf/amf/amfd/apptype.cc
--- a/osaf/services/saf/amf/amfd/apptype.cc
+++ b/osaf/services/saf/amf/amfd/apptype.cc
@@ -160,7 +160,11 @@ static SaAisErrorT apptype_ccb_completed
                         */
                        app = app_type->list_of_app;
                        while (app != NULL) {
-                               t_opData = 
ccbutil_getCcbOpDataByDN(opdata->ccbId, &app->name);
+                               SaNameT tmp;
+                               tmp.length = app->name_.size();
+                               memcpy(tmp.value, app->name_.c_str(), 
tmp.length);
+                                       
+                               t_opData = 
ccbutil_getCcbOpDataByDN(opdata->ccbId, &tmp);
                                if ((t_opData == NULL) || 
(t_opData->operationType != CCBUTIL_DELETE)) {
                                        app_exist = true;
                                        break;
diff --git a/osaf/services/saf/amf/amfd/ckpt_dec.cc 
b/osaf/services/saf/amf/amfd/ckpt_dec.cc
--- a/osaf/services/saf/amf/amfd/ckpt_dec.cc
+++ b/osaf/services/saf/amf/amfd/ckpt_dec.cc
@@ -341,10 +341,16 @@ static uint32_t dec_node_config(AVD_CL_C
 
 static void decode_app(NCS_UBAID *ub, AVD_APP *app)
 {
-       osaf_decode_sanamet(ub, &app->name);
+       SaNameT tmp;
+       tmp.length = app->name_.size();
+       memcpy(tmp.value, (char*) app->name_.c_str(), tmp.length);
+
+       osaf_decode_sanamet(ub, &tmp);
        osaf_decode_sanamet(ub, &app->saAmfAppType);
        osaf_decode_uint32(ub, (uint32_t*)&app->saAmfApplicationAdminState);
        osaf_decode_uint32(ub, &app->saAmfApplicationCurrNumSGs);
+
+       app->name_ = std::string((char*) tmp.value, tmp.length);
 }
 
 /****************************************************************************\
diff --git a/osaf/services/saf/amf/amfd/ckpt_enc.cc 
b/osaf/services/saf/amf/amfd/ckpt_enc.cc
--- a/osaf/services/saf/amf/amfd/ckpt_enc.cc
+++ b/osaf/services/saf/amf/amfd/ckpt_enc.cc
@@ -325,7 +325,11 @@ static uint32_t enc_node_config(AVD_CL_C
 
 static void encode_app(NCS_UBAID *ub, const AVD_APP *app)
 {
-       osaf_encode_sanamet(ub, &app->name);
+       SaNameT tmp;
+       tmp.length = app->name_.size();
+       memcpy(tmp.value, (char*) app->name_.c_str(), tmp.length);
+       
+       osaf_encode_sanamet(ub, &tmp);
        osaf_encode_sanamet(ub, &app->saAmfAppType);
        osaf_encode_uint32(ub, app->saAmfApplicationAdminState);
        osaf_encode_uint32(ub, app->saAmfApplicationCurrNumSGs);
@@ -362,7 +366,10 @@ static uint32_t enc_app_config(AVD_CL_CB
                encode_app(&enc->io_uba, app);  
                break;
        case NCS_MBCSV_ACT_RMV:
-               osaf_encode_sanamet(&enc->io_uba, &app->name);
+               SaNameT tmp;
+               tmp.length = app->name_.size();
+               memcpy(tmp.value, (char*) app->name_.c_str(), tmp.length);
+               osaf_encode_sanamet(&enc->io_uba, &tmp);
                break;
        default:
                osafassert(0);
diff --git a/osaf/services/saf/amf/amfd/ckpt_updt.cc 
b/osaf/services/saf/amf/amfd/ckpt_updt.cc
--- a/osaf/services/saf/amf/amfd/ckpt_updt.cc
+++ b/osaf/services/saf/amf/amfd/ckpt_updt.cc
@@ -98,13 +98,13 @@ uint32_t avd_ckpt_app(AVD_CL_CB *cb, AVD
 {
        uint32_t rc = NCSCC_RC_SUCCESS;
 
-       TRACE_ENTER2("%s - '%s'", action_name[action], ckpt_app->name.value);
+       TRACE_ENTER2("%s - '%s'", action_name[action], ckpt_app->name_.c_str());
 
        osafassert (action == NCS_MBCSV_ACT_UPDATE);
 
-       AVD_APP *app = app_db->find(Amf::to_string(&ckpt_app->name));
+       AVD_APP *app = app_db->find(ckpt_app->name_);
        if (app == NULL) {
-               LOG_ER("%s failed to find '%s'", __FUNCTION__, 
ckpt_app->name.value);
+               LOG_ER("%s failed to find '%s'", __FUNCTION__, 
ckpt_app->name_.c_str());
                rc = NCSCC_RC_FAILURE;
                goto done;
        }
diff --git a/osaf/services/saf/amf/amfd/include/app.h 
b/osaf/services/saf/amf/amfd/include/app.h
--- a/osaf/services/saf/amf/amfd/include/app.h
+++ b/osaf/services/saf/amf/amfd/include/app.h
@@ -34,7 +34,7 @@
 
 // TODO (hafe) change to class AmfApp
 typedef struct avd_app_tag {
-       SaNameT name;
+       std::string name_;
        SaNameT saAmfAppType;
        SaAmfAdminStateT saAmfApplicationAdminState;
        SaUint32T saAmfApplicationCurrNumSGs;
diff --git a/osaf/services/saf/amf/amfd/sg.cc b/osaf/services/saf/amf/amfd/sg.cc
--- a/osaf/services/saf/amf/amfd/sg.cc
+++ b/osaf/services/saf/amf/amfd/sg.cc
@@ -1416,7 +1416,11 @@ static SaAisErrorT sg_ccb_completed_cb(C
                sg = avd_sg_get(&opdata->objectName);
                if (sg->list_of_si != NULL) {
                        /* check whether there is parent app delete */
-                       t_opData = ccbutil_getCcbOpDataByDN(opdata->ccbId, 
&sg->app->name);
+                       SaNameT tmp;
+                       tmp.length = sg->app->name_.size();
+                       memcpy(tmp.value, sg->app->name_.c_str(), tmp.length);
+                       
+                       t_opData = ccbutil_getCcbOpDataByDN(opdata->ccbId, 
&tmp);
                        if (t_opData == NULL || t_opData->operationType != 
CCBUTIL_DELETE) {
                                /* check whether there exists a delete 
operation for 
                                 * each of the SIs in the SG's list in the 
current CCB
diff --git a/osaf/services/saf/amf/amfd/si.cc b/osaf/services/saf/amf/amfd/si.cc
--- a/osaf/services/saf/amf/amfd/si.cc
+++ b/osaf/services/saf/amf/amfd/si.cc
@@ -699,7 +699,11 @@ SaAisErrorT avd_si_config_get(AVD_APP *a
        searchParam.searchOneAttr.attrValueType = SA_IMM_ATTR_SASTRINGT;
        searchParam.searchOneAttr.attrValue = &className;
 
-       if ((rc = immutil_saImmOmSearchInitialize_2(avd_cb->immOmHandle, 
&app->name, SA_IMM_SUBTREE,
+       SaNameT tmp;
+       tmp.length = app->name_.size();
+       memcpy(tmp.value, app->name_.c_str(), tmp.length);
+       
+       if ((rc = immutil_saImmOmSearchInitialize_2(avd_cb->immOmHandle, &tmp, 
SA_IMM_SUBTREE,
              SA_IMM_SEARCH_ONE_ATTR | SA_IMM_SEARCH_GET_SOME_ATTR, 
&searchParam,
              configAttributes, &searchHandle)) != SA_AIS_OK) {
 
diff --git a/osaf/services/saf/amf/amfd/util.cc 
b/osaf/services/saf/amf/amfd/util.cc
--- a/osaf/services/saf/amf/amfd/util.cc
+++ b/osaf/services/saf/amf/amfd/util.cc
@@ -1369,7 +1369,7 @@ void amfd_file_dump(const char *path)
        for (std::map<std::string, AVD_APP*>::const_iterator it = 
app_db->begin();
                        it != app_db->end(); it++) {
                const AVD_APP *app = it->second;
-               fprintf(f, "%s\n", app->name.value);
+               fprintf(f, "%s\n", app->name_.c_str());
                fprintf(f, "\tsaAmfApplicationAdminState=%u\n", 
app->saAmfApplicationAdminState);
                fprintf(f, "\tsaAmfApplicationCurrNumSGs=%u\n", 
app->saAmfApplicationCurrNumSGs);
        }

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their 
applications. Written by three acclaimed leaders in the field, 
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to