Ack with tiny comments inline
Thanks,
Hans
> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> Sent: den 21 maj 2014 13:20
> To: Hans Feldt; Hans Nordebäck; [email protected]
> Cc: [email protected]
> Subject: [PATCH 1 of 1] amfd: use db_template to replace patricia tree in
> AVD_SI [#713]
>
> osaf/services/saf/amf/amfd/ckpt_enc.cc | 7 +++----
> osaf/services/saf/amf/amfd/imm.cc | 9 +++------
> osaf/services/saf/amf/amfd/include/si.h | 2 +-
> osaf/services/saf/amf/amfd/si.cc | 32
> ++++++++------------------------
> osaf/services/saf/amf/amfd/util.cc | 6 +++---
> 5 files changed, 18 insertions(+), 38 deletions(-)
>
>
> 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
> @@ -2370,7 +2370,6 @@ static uint32_t enc_cs_su_config(AVD_CL_
> static uint32_t enc_cs_si_config(AVD_CL_CB *cb, NCS_MBCSV_CB_ENC *enc,
> uint32_t *num_of_obj)
> {
> uint32_t status = NCSCC_RC_SUCCESS;
> - AVD_SI *si;
> SaNameT si_name;
> EDU_ERR ederror = static_cast<EDU_ERR>(0);
> TRACE_ENTER();
> @@ -2378,9 +2377,9 @@ static uint32_t enc_cs_si_config(AVD_CL_
> /*
> * Walk through the entire list and send the entire list data.
> */
> - si_name.length = 0;
> - for (si = avd_si_getnext(&si_name); si != NULL;
> - si = avd_si_getnext(&si_name)) {
> + for (std::map<std::string, AVD_SI*>::const_iterator it = si_db->begin();
> + it != si_db->end(); it++) {
> + AVD_SI *si = it->second;
[Hans] const ptr?
> status = m_NCS_EDU_VER_EXEC(&cb->edu_hdl, avsv_edp_ckpt_msg_si,
> &enc->io_uba,
> EDP_OP_TYPE_ENC, si, &ederror,
> enc->i_peer_version);
>
> diff --git a/osaf/services/saf/amf/amfd/imm.cc
> b/osaf/services/saf/amf/amfd/imm.cc
> --- a/osaf/services/saf/amf/amfd/imm.cc
> +++ b/osaf/services/saf/amf/amfd/imm.cc
> @@ -1579,8 +1579,6 @@ void avd_imm_update_runtime_attrs(void)
> AVD_COMP *comp;
> SaNameT node_name = {0};
> AVD_AVND *node;
> - SaNameT si_name = {0};
> - AVD_SI *si;
>
> /* Update SU Class runtime cached attributes. */
> for (std::map<std::string, AVD_SU*>::const_iterator it = su_db->begin();
> @@ -1631,12 +1629,11 @@ void avd_imm_update_runtime_attrs(void)
> }
>
> /* Update Node Class runtime cached attributes. */
> - si = avd_si_getnext(&si_name);
> - while (si != NULL) {
> + for (std::map<std::string, AVD_SI*>::const_iterator it = si_db->begin();
> + it != si_db->end(); it++) {
> + AVD_SI *si = it->second;
[Hans] const ptr?
> avd_saImmOiRtObjectUpdate(&si->name, "saAmfSIAssignmentState",
> SA_IMM_ATTR_SAUINT32T, &si->saAmfSIAssignmentState);
> -
> - si = avd_si_getnext(&si->name);
> }
> }
>
> diff --git a/osaf/services/saf/amf/amfd/include/si.h
> b/osaf/services/saf/amf/amfd/include/si.h
> --- a/osaf/services/saf/amf/amfd/include/si.h
> +++ b/osaf/services/saf/amf/amfd/include/si.h
> @@ -132,6 +132,7 @@ typedef struct {
>
> } AVD_SVC_TYPE_CS_TYPE;
>
> +extern AmfDb<AVD_SI> *si_db;
> #define AVD_SI_NULL ((AVD_SI *)0)
> #define m_AVD_SI_ACTV_MAX_SU(l_si) (l_si)->saAmfSIPrefActiveAssignments
> #define m_AVD_SI_ACTV_CURR_SU(l_si) (l_si)->saAmfSINumCurrActiveAssignments
> @@ -150,7 +151,6 @@ extern AVD_SI *avd_si_new(const SaNameT
> extern void avd_si_delete(AVD_SI *si);
> extern void avd_si_db_add(AVD_SI *si);
> extern AVD_SI *avd_si_get(const SaNameT *si_name);
> -extern AVD_SI *avd_si_getnext(const SaNameT *si_name);
> extern SaAisErrorT avd_si_config_get(struct avd_app_tag *app);
> extern void avd_si_constructor(void);
>
> 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
> @@ -27,7 +27,8 @@
> #include <proc.h>
> #include <si_dep.h>
>
> -static NCS_PATRICIA_TREE si_db;
> +AmfDb<AVD_SI> *si_db = 0;
[Hans] = NULL;
> +
> static void avd_si_add_csi_db(struct avd_csi_tag* csi);
> static void si_update_ass_state(AVD_SI *si);
>
> @@ -365,8 +366,6 @@ static void si_delete_csis(AVD_SI *si)
>
> void avd_si_delete(AVD_SI *si)
> {
> - unsigned int rc;
> -
> TRACE_ENTER2("%s", si->name.value);
>
> /* All CSI under this should have been deleted by now on the active
> @@ -385,8 +384,7 @@ void avd_si_delete(AVD_SI *si)
> SA_NTF_SOFTWARE_ERROR);
> }
>
> - rc = ncs_patricia_tree_del(&si_db, &si->tree_node);
> - osafassert(rc == NCSCC_RC_SUCCESS);
> + si_db->erase(si);
>
> if (si->saAmfSIActiveWeight != NULL) {
> unsigned int i = 0;
> @@ -434,8 +432,8 @@ void avd_si_db_add(AVD_SI *si)
> {
> unsigned int rc;
>
> - if (avd_si_get(&si->name) == NULL) {
> - rc = ncs_patricia_tree_add(&si_db, &si->tree_node);
> + if (si_db->find(&si->name) == NULL) {
> + rc = si_db->insert(si);
> osafassert(rc == NCSCC_RC_SUCCESS);
> }
> }
> @@ -450,21 +448,10 @@ AVD_SI *avd_si_get(const SaNameT *dn)
> tmp.length = dn->length;
> memcpy(tmp.value, dn->value, tmp.length);
>
> - return (AVD_SI *)ncs_patricia_tree_get(&si_db, (uint8_t *)&tmp);
> + return si_db->find(dn);
> }
>
> -AVD_SI *avd_si_getnext(const SaNameT *dn)
> -{
> - SaNameT tmp = {0};
>
> - if (dn->length > SA_MAX_NAME_LENGTH)
> - return NULL;
> -
> - tmp.length = dn->length;
> - memcpy(tmp.value, dn->value, tmp.length);
> -
> - return (AVD_SI *)ncs_patricia_tree_getnext(&si_db, (uint8_t *)&tmp);
> -}
>
> static void si_add_to_model(AVD_SI *si)
> {
> @@ -581,7 +568,7 @@ static AVD_SI *si_create(SaNameT *si_nam
> ** If called at new active at failover, the object is found in the DB
> ** but needs to get configuration attributes initialized.
> */
> - if (NULL == (si = avd_si_get(si_name))) {
> + if (NULL == (si = si_db->find(si_name))) {
[Hans] please reverse this logical expression
> if ((si = avd_si_new(si_name)) == NULL)
> goto done;
> } else {
> @@ -1386,10 +1373,7 @@ void avd_si_inc_curr_stdby_dec_act_ass(A
>
> void avd_si_constructor(void)
> {
> - NCS_PATRICIA_PARAMS patricia_params;
> -
> - patricia_params.key_size = sizeof(SaNameT);
> - osafassert(ncs_patricia_tree_init(&si_db, &patricia_params) ==
> NCSCC_RC_SUCCESS);
> + si_db = new AmfDb<AVD_SI>;
> avd_class_impl_set("SaAmfSI", si_rt_attr_cb, si_admin_op_cb,
> si_ccb_completed_cb, si_ccb_apply_cb);
> }
> 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
> @@ -1412,9 +1412,9 @@ void amfd_file_dump(const char *path)
> dn = comp->comp_info.name;
> }
>
> - AVD_SI *si;
> - dn.length = 0;
> - for (si = avd_si_getnext(&dn); si != NULL; si = avd_si_getnext(&dn)) {
> + for (std::map<std::string, AVD_SI*>::const_iterator it = si_db->begin();
> + it != si_db->end(); it++) {
> + const AVD_SI *si = it->second;
> fprintf(f, "%s\n", si->name.value);
> fprintf(f, "\tsaAmfSIAdminState=%u\n", si->saAmfSIAdminState);
> fprintf(f, "\tsaAmfSIAssignmentStatee=%u\n",
> si->saAmfSIAssignmentState);
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel