ack, code review only/Thanks HansN

On 01/25/2016 05:35 AM, Gary Lee wrote:
>   osaf/services/saf/amf/amfd/sirankedsu.cc |  143 
> ++++++++++++------------------
>   1 files changed, 57 insertions(+), 86 deletions(-)
>
>
> diff --git a/osaf/services/saf/amf/amfd/sirankedsu.cc 
> b/osaf/services/saf/amf/amfd/sirankedsu.cc
> --- a/osaf/services/saf/amf/amfd/sirankedsu.cc
> +++ b/osaf/services/saf/amf/amfd/sirankedsu.cc
> @@ -34,20 +34,22 @@
>   #include <imm.h>
>   #include <csi.h>
>   #include <logtrace.h>
> +#include <algorithm>
> +#include <string>
>   
>   AmfDb<std::pair<std::string, uint32_t>, AVD_SUS_PER_SI_RANK> 
> *sirankedsu_db= nullptr;
> -static void avd_susi_namet_init(const SaNameT *object_name, SaNameT 
> *su_name, SaNameT *si_name);
> +static void avd_susi_namet_init(const std::string& object_name, std::string& 
> su_name, std::string& si_name);
>   
>   static void avd_sirankedsu_db_add(AVD_SUS_PER_SI_RANK *sirankedsu)
>   {
>           AVD_SI *avd_si = nullptr;
> -     unsigned int rc = 
> sirankedsu_db->insert(make_pair(Amf::to_string(&(sirankedsu->indx.si_name)),
> +     unsigned int rc = 
> sirankedsu_db->insert(make_pair(sirankedsu->indx.si_name,
>                               sirankedsu->indx.su_rank), sirankedsu);
>           osafassert(rc == NCSCC_RC_SUCCESS);
>   
>           /* Find the si name. */
> -        avd_si = avd_si_get(&(sirankedsu->indx.si_name));
> -     avd_si->add_rankedsu(&sirankedsu->su_name, sirankedsu->indx.su_rank);
> +        avd_si = avd_si_get(sirankedsu->indx.si_name);
> +     avd_si->add_rankedsu(sirankedsu->su_name, sirankedsu->indx.su_rank);
>   
>           /* Add sus_per_si_rank to si */
>           sirankedsu->sus_per_si_rank_on_si = avd_si;
> @@ -78,10 +80,7 @@
>   
>       ranked_su_per_si = new AVD_SUS_PER_SI_RANK();
>   
> -     ranked_su_per_si->indx.si_name.length = indx.si_name.length;
> -     memcpy(ranked_su_per_si->indx.si_name.value, indx.si_name.value,
> -             ranked_su_per_si->indx.si_name.length);
> -
> +     ranked_su_per_si->indx.si_name = indx.si_name;
>       ranked_su_per_si->indx.su_rank = indx.su_rank;
>   
>       return ranked_su_per_si;
> @@ -109,11 +108,10 @@
>       AVD_SUS_PER_SI_RANK_INDX rank_indx;
>   
>       memset(&rank_indx, '\0', sizeof(AVD_SUS_PER_SI_RANK_INDX));
> -     rank_indx.si_name.length = indx.si_name.length;
> -     memcpy(rank_indx.si_name.value, indx.si_name.value, 
> indx.si_name.length);
> +     rank_indx.si_name = indx.si_name;
>       rank_indx.su_rank = indx.su_rank;
>   
> -     ranked_su_per_si = 
> sirankedsu_db->find(make_pair(Amf::to_string(&(rank_indx.si_name)),
> +     ranked_su_per_si = sirankedsu_db->find(make_pair(rank_indx.si_name,
>                               rank_indx.su_rank));
>   
>       return ranked_su_per_si;
> @@ -139,7 +137,7 @@
>       if (ranked_su_per_si == nullptr)
>               return NCSCC_RC_FAILURE;
>   
> -     
> sirankedsu_db->erase(make_pair(Amf::to_string(&(ranked_su_per_si->indx.si_name)),
> +     sirankedsu_db->erase(make_pair(ranked_su_per_si->indx.si_name,
>                               ranked_su_per_si->indx.su_rank));
>       delete ranked_su_per_si;
>       return NCSCC_RC_SUCCESS;
> @@ -164,16 +162,13 @@
>   {
>           uint32_t rank = 0;
>       AVD_SUS_PER_SI_RANK *avd_sus_per_si_rank = nullptr;
> -     SaNameT su_name;
> -     SaNameT si_name;
> +     std::string su_name;
> +     std::string si_name;
>       AVD_SUS_PER_SI_RANK_INDX indx;
>   
>       immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfRank"), attributes, 0, 
> &rank);
> -     
>   
> -     memset(&su_name, 0, sizeof(SaNameT));
> -     memset(&si_name, 0, sizeof(SaNameT));
> -     avd_susi_namet_init(dn, &su_name, &si_name);
> +     avd_susi_namet_init(Amf::to_string(dn), su_name, si_name);
>   
>       /* Find the avd_sus_per_si_rank name. */
>       memset(&indx, '\0', sizeof(AVD_SUS_PER_SI_RANK_INDX));
> @@ -217,7 +212,7 @@
>   
>               if (i_sus_per_si_rank != sus_per_si_rank) {
>                       LOG_CR("SI '%s' having SU '%s' with rank %u, does not 
> exist in sirankedsu link list",
> -                                     sus_per_si_rank->indx.si_name.value, 
> sus_per_si_rank->su_name.value,
> +                                     sus_per_si_rank->indx.si_name.c_str(), 
> sus_per_si_rank->su_name.c_str(),
>                                       sus_per_si_rank->indx.su_rank);
>               } else {
>                       if (prev_sus_per_si_rank == nullptr) {
> @@ -228,7 +223,7 @@
>                                   
> sus_per_si_rank->sus_per_si_rank_list_si_next;
>                       }
>               }
> -             
> sus_per_si_rank->sus_per_si_rank_on_si->remove_rankedsu(Amf::to_string(&sus_per_si_rank->su_name));
> +             
> sus_per_si_rank->sus_per_si_rank_on_si->remove_rankedsu(sus_per_si_rank->su_name);
>   
>               sus_per_si_rank->sus_per_si_rank_list_si_next = nullptr;
>               sus_per_si_rank->sus_per_si_rank_on_si = nullptr;
> @@ -237,54 +232,54 @@
>       return;
>   }
>   
> -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)
>   {
>           AVD_SI *avd_si = nullptr;
> -     SaNameT su_name;
> -     SaNameT si_name;
> +     std::string su_name;
> +     std::string si_name;
>           uint32_t rank = 0;
>       AVD_SUS_PER_SI_RANK_INDX indx;
>       AVD_SU *avd_su = nullptr;
>   
> -        memset(&su_name, 0, sizeof(SaNameT));
> -        memset(&si_name, 0, sizeof(SaNameT));
> -        avd_susi_namet_init(dn, &su_name, &si_name);
> +        avd_susi_namet_init(dn, su_name, si_name);
>   
>           /* Find the si name. */
> -        avd_si = avd_si_get(&si_name);
> +        avd_si = avd_si_get(si_name);
>   
>           if (avd_si == nullptr) {
>                   /* SI does not exist in current model, check CCB */
>                   if (opdata == nullptr) {
> -                        report_ccb_validation_error(opdata, "'%s' does not 
> exist in model", si_name.value);
> +                        report_ccb_validation_error(opdata, "'%s' does not 
> exist in model", si_name.c_str());
>                           return 0;
>                   }
>   
> -                if (ccbutil_getCcbOpDataByDN(opdata->ccbId, &si_name) == 
> nullptr) {
> +             const SaNameTWrapper tmp_si_name(si_name);
> +                if (ccbutil_getCcbOpDataByDN(opdata->ccbId, tmp_si_name) == 
> nullptr) {
>                           report_ccb_validation_error(opdata, "'%s' does not 
> exist in existing model or in CCB",
> -                                     si_name.value);
> +                                     si_name.c_str());
>                           return 0;
>                   }
>           }
>   
>       /* Find the su name. */
> -     avd_su = su_db->find(Amf::to_string(&su_name));
> +     avd_su = su_db->find(su_name);
>       if (avd_su == nullptr) {
>               /* SU does not exist in current model, check CCB */
>               if (opdata == nullptr) {
> -                     report_ccb_validation_error(opdata, "'%s' does not 
> exist in model", su_name.value);
> +                     report_ccb_validation_error(opdata, "'%s' does not 
> exist in model", su_name.c_str());
>                       return 0;
>               }
>   
> -             if (ccbutil_getCcbOpDataByDN(opdata->ccbId, &su_name) == 
> nullptr) {
> +             const SaNameTWrapper tmp_su_name(su_name);
> +             if (ccbutil_getCcbOpDataByDN(opdata->ccbId, tmp_su_name) == 
> nullptr) {
>                       report_ccb_validation_error(opdata, "'%s' does not 
> exist in existing model or in CCB",
> -                                     su_name.value);
> +                                     su_name.c_str());
>                       return 0;
>               }
>       }
>   
>       if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfRank"), 
> attributes, 0, &rank) != SA_AIS_OK) {
> -             report_ccb_validation_error(opdata, "saAmfRank not found for 
> %s", dn->value);
> +             report_ccb_validation_error(opdata, "saAmfRank not found for 
> %s", dn.c_str());
>               return 0;
>       }
>   
> @@ -293,7 +288,7 @@
>       if ((avd_sirankedsu_find(avd_cb, indx)) != nullptr ) {
>               if (opdata != nullptr) {
>                       report_ccb_validation_error(opdata, "saAmfRankedSu 
> exists %s, si'%s', rank'%u'",
> -                                     dn->value, si_name.value, rank);
> +                                     dn.c_str(), si_name.c_str(), rank);
>                       return 0;
>               }
>               return SA_AIS_OK;
> @@ -302,43 +297,22 @@
>           return SA_AIS_OK;
>   }
>   
> -static void avd_susi_namet_init(const SaNameT *object_name, SaNameT 
> *su_name, SaNameT *si_name)
> +static void avd_susi_namet_init(const std::string& object_name, std::string& 
> su_name, std::string& si_name)
>   {
> -     char *p = nullptr;
> +     std::string::size_type pos;
> +     std::string::size_type equal_pos;
>   
> -     if (su_name) {
> -             SaNameT temp_name;
> -             int i;
> +     // DN looks like: safRankedSu=safSu=SuName\,safSg=SgName\,
> +     //      safApp=AppName,safSi=SiName,safApp=AppName */
>   
> -             /* Take out Su Name. safRankedSu=safSu=SuName\,safSg=SgName\,
> -             safApp=AppName,safSi=SiName,safApp=AppName */
> -             temp_name = *object_name;
> -             p = strstr((char *)temp_name.value, "safSi=");
> -             *(--p) = '\0';  /* null terminate at comma before si name */
> +     // set si_name
> +     pos = object_name.find("safSi=");
> +     si_name = object_name.substr(pos);
>   
> -             /* Skip past the RDN tag */
> -             p = strchr((char *)temp_name.value, '=') + 1;
> -             osafassert(p);
> -             memset(su_name, 0, sizeof(SaNameT));
> -             /* Copy the RDN value which is a DN with escaped commas */
> -             i = 0;
> -             while (*p) {
> -                     if (*p != '\\')
> -                             su_name->value[i++] = *p;
> -
> -                     p++;
> -             }
> -             /* i Points just after SU name ends, so it will give the name 
> length
> -             as it starts with zero. */
> -             su_name->length = i;
> -     }
> -
> -     if (si_name) {
> -             memset(si_name, 0, sizeof(SaNameT));
> -             p = strstr((char *)object_name->value, "safSi=");
> -             si_name->length = strlen(p);
> -             memcpy(si_name->value, p, si_name->length);
> -     }
> +     // set su_name
> +     equal_pos = object_name.find('=');
> +     su_name = object_name.substr(equal_pos + 1, pos - equal_pos - 2);
> +     su_name.erase(std::remove(su_name.begin(), su_name.end(), '\\'), 
> su_name.end());
>   }
>   
>   static void sirankedsu_ccb_apply_cb(CcbUtilOperationData_t *opdata)
> @@ -368,25 +342,22 @@
>   static int avd_sirankedsu_ccb_complete_delete_hdlr(CcbUtilOperationData_t 
> *opdata)
>   {
>       AVD_SI *si = nullptr;
> -     SaNameT su_name;
> -     SaNameT si_name;
> +     std::string su_name;
> +     std::string si_name;
>       AVD_SUS_PER_SI_RANK *su_rank_rec = 0;
>       bool found = false;
>   
>           TRACE_ENTER2("CCB ID %llu, '%s'", opdata->ccbId, 
> opdata->objectName.value);
>   
> -     memset(&su_name, 0, sizeof(SaNameT));
> -     memset(&si_name, 0, sizeof(SaNameT));
> -     avd_susi_namet_init(opdata->param.deleteOp.objectName, &su_name, 
> &si_name);
> +     avd_susi_namet_init(Amf::to_string(opdata->param.deleteOp.objectName), 
> su_name, si_name);
>   
>       /* determine if the su is ranked per si */
>       for (std::map<std::pair<std::string, uint32_t>, 
> AVD_SUS_PER_SI_RANK*>::const_iterator
>                       it = sirankedsu_db->begin(); it != 
> sirankedsu_db->end(); it++) {
>               su_rank_rec = it->second;
> -             if ((memcmp(&(su_rank_rec->indx.si_name), &si_name, 
> sizeof(SaNameT))
> -                                     == 0) &&
> -                             (memcmp(&su_rank_rec->su_name.value,
> -                                     &su_name.value, su_name.length) == 0)) {
> +
> +             if (su_rank_rec->indx.si_name.compare(si_name) == 0 &&
> +                     su_rank_rec->su_name.compare(su_name) == 0) {
>                       found = true;
>                       break;
>               }
> @@ -398,17 +369,17 @@
>       }
>   
>       /* Find the si name. */
> -     si = avd_si_get(&si_name);
> +     si = avd_si_get(si_name);
>   
>       if (si == nullptr) {
> -             LOG_ER("SI '%s' not found", si_name.value);
> +             LOG_ER("SI '%s' not found", si_name.c_str());
>               goto error;
>       }
>   
>       if (si != nullptr) {
>               /* SI should not be assigned while SI ranked SU needs to be 
> deleted */
>               if (si->list_of_sisu != nullptr) {
> -                     TRACE("Parent SI is in assigned state '%s'", 
> si->name.value);
> +                     TRACE("Parent SI is in assigned state '%s'", 
> si->name.c_str());
>                       goto error;
>               }
>       }
> @@ -430,7 +401,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:
> @@ -451,7 +422,7 @@
>       return rc;
>   }
>   
> -SaAisErrorT avd_sirankedsu_config_get(SaNameT *si_name, AVD_SI *si)
> +SaAisErrorT avd_sirankedsu_config_get(const std::string& si_name, AVD_SI *si)
>   {
>       SaAisErrorT error = SA_AIS_ERR_FAILED_OPERATION;
>       SaImmSearchHandleT searchHandle;
> @@ -468,7 +439,7 @@
>       searchParam.searchOneAttr.attrValueType = SA_IMM_ATTR_SASTRINGT;
>       searchParam.searchOneAttr.attrValue = &className;
>   
> -     if (immutil_saImmOmSearchInitialize_2(avd_cb->immOmHandle, si_name, 
> SA_IMM_SUBTREE,
> +     if (immutil_saImmOmSearchInitialize_o2(avd_cb->immOmHandle, 
> si_name.c_str(), SA_IMM_SUBTREE,
>             SA_IMM_SEARCH_ONE_ATTR | SA_IMM_SEARCH_GET_ALL_ATTR, &searchParam,
>             nullptr, &searchHandle) != SA_AIS_OK) {
>   
> @@ -480,13 +451,13 @@
>   
>               LOG_NO("'%s'", dn.value);
>   
> -             indx.si_name = *si_name;
> +             indx.si_name = si_name;
>               if (immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfRank"), 
> attributes, 0, &indx.su_rank) != SA_AIS_OK) {
>                       LOG_ER("Get saAmfRank FAILED for '%s'", dn.value);
>                       goto done1;
>               }
>   
> -                if (!is_config_valid(&dn, attributes, nullptr))
> +                if (!is_config_valid(Amf::to_string(&dn), attributes, 
> nullptr))
>                       goto done2;
>   
>               if ((avd_sirankedsu = avd_sirankedsu_find(avd_cb, indx)) == 
> nullptr) {


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

Reply via email to