osaf/services/saf/amf/amfd/ckpt_dec.cc                |  68 ++++++------------
 osaf/services/saf/amf/amfd/ckpt_edu.cc                |  55 ---------------
 osaf/services/saf/amf/amfd/ckpt_enc.cc                |  63 ++++++-----------
 osaf/services/saf/amf/amfd/include/ckpt.h             |   3 +
 osaf/services/saf/amf/amfd/include/ckpt_edu.h         |   3 -
 osaf/services/saf/amf/amfd/tests/test_ckpt_enc_dec.cc |  40 ++++++++++-
 6 files changed, 88 insertions(+), 144 deletions(-)


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
@@ -557,6 +557,16 @@
        return status;
 }
 
+void decode_si_trans(NCS_UBAID *ub,
+       AVSV_SI_TRANS_CKPT_MSG *msg,
+       const uint16_t peer_version)
+{
+       osaf_decode_sanamet(ub, &msg->sg_name);
+       osaf_decode_sanamet(ub, &msg->si_name);
+       osaf_decode_sanamet(ub, &msg->min_su_name);
+       osaf_decode_sanamet(ub, &msg->max_su_name);
+}
+
 /**************************************************************************
  * @brief  decodes the si transfer parameters 
  * @param[in] cb
@@ -564,45 +574,30 @@
  *************************************************************************/
 static uint32_t dec_si_trans(AVD_CL_CB *cb, NCS_MBCSV_CB_DEC *dec)
 {
-       uint32_t status = NCSCC_RC_SUCCESS;
-       AVSV_SI_TRANS_CKPT_MSG *si_trans_ckpt;
-       AVSV_SI_TRANS_CKPT_MSG dec_si_trans_ckpt;
-       EDU_ERR ederror = static_cast<EDU_ERR>(0);
+       AVSV_SI_TRANS_CKPT_MSG si_trans_ckpt;
 
        TRACE_ENTER2("i_action '%u'", dec->i_action);
 
-       si_trans_ckpt = &dec_si_trans_ckpt;
-
        switch (dec->i_action) {
        case NCS_MBCSV_ACT_ADD:
-               status = m_NCS_EDU_VER_EXEC(&cb->edu_hdl, 
avsv_edp_ckpt_msg_si_trans,
-                       &dec->i_uba, EDP_OP_TYPE_DEC, (AVSV_SI_TRANS_CKPT_MSG 
**)&si_trans_ckpt,
-                       &ederror, dec->i_peer_version);
+               decode_si_trans(&dec->i_uba, &si_trans_ckpt, 
dec->i_peer_version);
                break;
 
        case NCS_MBCSV_ACT_RMV:
                /* Send only key information */
-               status = ncs_edu_exec(&cb->edu_hdl, avsv_edp_ckpt_msg_si_trans, 
&dec->i_uba,
-                       EDP_OP_TYPE_DEC, (AVSV_SI_TRANS_CKPT_MSG 
**)&si_trans_ckpt, &ederror, 1, 1);
+               osaf_decode_sanamet(&dec->i_uba, &si_trans_ckpt.sg_name);
                break;
 
        default:
                osafassert(0);
        }
 
-       if (status != NCSCC_RC_SUCCESS) {
-               LOG_ER("%s: decode failed, ederror=%u", __FUNCTION__, ederror);
-               return status;
-       }
-
-       avd_ckpt_si_trans(cb, si_trans_ckpt, dec->i_action);
-
-       /* If update is successful, update async update count */
-       if (NCSCC_RC_SUCCESS == status)
-               cb->async_updt_cnt.si_trans_updt++;
-
-       TRACE_LEAVE2("status '%u'", status);
-       return status;
+       avd_ckpt_si_trans(cb, &si_trans_ckpt, dec->i_action);
+
+       cb->async_updt_cnt.si_trans_updt++;
+
+       TRACE_LEAVE();
+       return NCSCC_RC_SUCCESS;
 }
 
 void decode_siass(NCS_UBAID *ub,
@@ -2444,33 +2439,18 @@
  *****************************************************************/
 static uint32_t dec_cs_si_trans(AVD_CL_CB *cb, NCS_MBCSV_CB_DEC *dec, uint32_t 
num_of_obj)
 {
-       uint32_t status = NCSCC_RC_SUCCESS;
-       AVSV_SI_TRANS_CKPT_MSG *si_trans_ckpt;
-       AVSV_SI_TRANS_CKPT_MSG dec_si_trans_ckpt;
-       EDU_ERR ederror = static_cast<EDU_ERR>(0);
+       AVSV_SI_TRANS_CKPT_MSG si_trans_ckpt;
        uint32_t count = 0;
 
        TRACE_ENTER();
 
-       si_trans_ckpt = &dec_si_trans_ckpt;
-
        for (count = 0; count < num_of_obj; count++) {
-               status = m_NCS_EDU_VER_EXEC(&cb->edu_hdl, 
avsv_edp_ckpt_msg_si_trans,
-                               &dec->i_uba, EDP_OP_TYPE_DEC, 
(AVSV_SI_TRANS_CKPT_MSG **)&si_trans_ckpt,
-                               &ederror, dec->i_peer_version);
-               if (status != NCSCC_RC_SUCCESS) {
-                       LOG_ER("%s: decode failed, ederror=%u", __FUNCTION__, 
ederror);
-               }
-
-               status = avd_ckpt_si_trans(cb, si_trans_ckpt, dec->i_action);
-
-               if (status != NCSCC_RC_SUCCESS) {
-                       return NCSCC_RC_FAILURE;
-               }
+               decode_si_trans(&dec->i_uba, &si_trans_ckpt, 
dec->i_peer_version);
+               avd_ckpt_si_trans(cb, &si_trans_ckpt, dec->i_action);
        }
 
-       TRACE_LEAVE2("status '%u'", status);
-       return status;
+       TRACE_LEAVE();
+       return NCSCC_RC_SUCCESS;
 
 }
 
diff --git a/osaf/services/saf/amf/amfd/ckpt_edu.cc 
b/osaf/services/saf/amf/amfd/ckpt_edu.cc
--- a/osaf/services/saf/amf/amfd/ckpt_edu.cc
+++ b/osaf/services/saf/amf/amfd/ckpt_edu.cc
@@ -73,10 +73,6 @@
        if (rc != NCSCC_RC_SUCCESS)
                goto error;
 
-       rc = m_NCS_EDU_COMPILE_EDP(&cb->edu_hdl, avsv_edp_ckpt_msg_si_trans, 
&err);
-       if (rc != NCSCC_RC_SUCCESS)
-               goto error;
-
        return rc;
 
 error:
@@ -288,8 +284,6 @@
                {EDU_EXEC, ncs_edp_uns32, 0, 0, 0,
                 (long)&((AVSV_ASYNC_UPDT_CNT *)0)->compcstype_updt, 0, 
nullptr},
                {EDU_EXEC, ncs_edp_uns32, 0, 0, 0,
-                (long)&((AVSV_ASYNC_UPDT_CNT *)0)->si_trans_updt, 0, nullptr},
-               {EDU_EXEC, ncs_edp_uns32, 0, 0, 0,
                 (long)&((AVSV_ASYNC_UPDT_CNT *)0)->ng_updt, 0, nullptr},
 
                {EDU_END, 0, 0, 0, 0, 0, 0, nullptr},
@@ -417,52 +411,3 @@
                                 ptr_data_len, buf_env, op, o_err);
        return rc;
 }
-
-/******************************************************************
- * @brief encode/decode rules for si transfer parameters
- * @param[in] hdl
- * @param[in] edu_tkn
- * @param[in] ptr
- * @param[in] ptr_data_len
- * @param[in] buf_env
- * @param[in] op
- * @param[out] o_err 
- ******************************************************************/
-uint32_t avsv_edp_ckpt_msg_si_trans(EDU_HDL *hdl, EDU_TKN *edu_tkn,
-                                 NCSCONTEXT ptr, uint32_t *ptr_data_len,
-                                 EDU_BUF_ENV *buf_env, EDP_OP_TYPE op, EDU_ERR 
*o_err)
-{
-       uint32_t rc = NCSCC_RC_SUCCESS;
-       AVSV_SI_TRANS_CKPT_MSG *struct_ptr = nullptr, **d_ptr = nullptr;
-
-       EDU_INST_SET avsv_ckpt_msg_si_trans_rules[] = {
-               {EDU_START, avsv_edp_ckpt_msg_si_trans, 0, 0, 0,
-                sizeof(AVSV_SI_TRANS_CKPT_MSG), 0, nullptr},
-
-               {EDU_EXEC, ncs_edp_sanamet, 0, 0, 0, 
(long)&((AVSV_SI_TRANS_CKPT_MSG *)0)->sg_name, 0, nullptr},
-               {EDU_EXEC, ncs_edp_sanamet, 0, 0, 0, 
(long)&((AVSV_SI_TRANS_CKPT_MSG *)0)->si_name, 0, nullptr},
-               {EDU_EXEC, ncs_edp_sanamet, 0, 0, 0, 
(long)&((AVSV_SI_TRANS_CKPT_MSG *)0)->min_su_name, 0, nullptr},
-               {EDU_EXEC, ncs_edp_sanamet, 0, 0, 0, 
(long)&((AVSV_SI_TRANS_CKPT_MSG *)0)->max_su_name, 0, nullptr},
-
-               {EDU_END, 0, 0, 0, 0, 0, 0, nullptr},
-       };
-
-       if (op == EDP_OP_TYPE_ENC) {
-               struct_ptr = (AVSV_SI_TRANS_CKPT_MSG *)ptr;
-       } else if (op == EDP_OP_TYPE_DEC) {
-               d_ptr = (AVSV_SI_TRANS_CKPT_MSG **)ptr;
-               if (*d_ptr == nullptr) {
-                       *o_err = EDU_ERR_MEM_FAIL;
-                       return NCSCC_RC_FAILURE;
-               }
-               memset(*d_ptr, '\0', sizeof(AVSV_SI_TRANS_CKPT_MSG));
-               struct_ptr = *d_ptr;
-       } else {
-               struct_ptr = static_cast<AVSV_SI_TRANS_CKPT_MSG*>(ptr);
-       }
-
-       rc = m_NCS_EDU_RUN_RULES(hdl, edu_tkn, avsv_ckpt_msg_si_trans_rules, 
struct_ptr,
-                                ptr_data_len, buf_env, op, o_err);
-
-       return rc;
-}
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
@@ -596,6 +596,16 @@
        return status;
 }
 
+void encode_si_trans(NCS_UBAID *ub,
+       const AVD_SG *sg,
+       const uint16_t peer_version)
+{
+       osaf_encode_sanamet(ub, &sg->name);
+       osaf_encode_sanamet(ub, &sg->si_tobe_redistributed->name);
+       osaf_encode_sanamet(ub, &sg->min_assigned_su->name);
+       osaf_encode_sanamet(ub, &sg->max_assigned_su->name);
+}
+
 /*********************************************************************
  * @brief encodes si transfer parameters
  * @param[in] cb
@@ -603,39 +613,26 @@
  ********************************************************************/
 static uint32_t enc_si_trans(AVD_CL_CB *cb, NCS_MBCSV_CB_ENC *enc)
 {
-       uint32_t status = NCSCC_RC_SUCCESS;
-       AVSV_SI_TRANS_CKPT_MSG si_trans_ckpt;
-       EDU_ERR ederror = static_cast<EDU_ERR>(0);
        TRACE_ENTER2("io_action '%u'", enc->io_action);
 
-       memset(&si_trans_ckpt, 0, sizeof(AVSV_SI_TRANS_CKPT_MSG));
-       si_trans_ckpt.sg_name = ((AVD_SG 
*)(NCS_INT64_TO_PTR_CAST(enc->io_reo_hdl)))->name;
+       const AVD_SG *sg = (AVD_SG *)enc->io_reo_hdl;
 
        switch (enc->io_action) {
        case NCS_MBCSV_ACT_ADD:
-               si_trans_ckpt.si_name = ((AVD_SG 
*)(NCS_INT64_TO_PTR_CAST(enc->io_reo_hdl)))->si_tobe_redistributed->name;
-               si_trans_ckpt.min_su_name = ((AVD_SG 
*)(NCS_INT64_TO_PTR_CAST(enc->io_reo_hdl)))->min_assigned_su->name;
-               si_trans_ckpt.max_su_name = ((AVD_SG 
*)(NCS_INT64_TO_PTR_CAST(enc->io_reo_hdl)))->max_assigned_su->name;
-               status = m_NCS_EDU_VER_EXEC(&cb->edu_hdl, 
avsv_edp_ckpt_msg_si_trans,
-                       &enc->io_uba, EDP_OP_TYPE_ENC, &si_trans_ckpt, 
&ederror, enc->i_peer_version);
+               encode_si_trans(&enc->io_uba, sg, enc->i_peer_version);
                break;
 
        case NCS_MBCSV_ACT_RMV:
                /* Send only key information */
-               status = m_NCS_EDU_SEL_VER_EXEC(&cb->edu_hdl, 
avsv_edp_ckpt_msg_si_trans, &enc->io_uba,
-                       EDP_OP_TYPE_ENC, &si_trans_ckpt, &ederror, 
enc->i_peer_version, 1, 1);
+               osaf_encode_sanamet(&enc->io_uba, &sg->name);
                break;
 
        default:
                osafassert(0);
        }
 
-       if (status != NCSCC_RC_SUCCESS) {
-               LOG_ER("%s: encode failed, ederror=%u", __FUNCTION__, ederror);
-       }
-
-       TRACE_LEAVE2("status '%u'", status);
-       return status;
+       TRACE_LEAVE();
+       return NCSCC_RC_SUCCESS;
 }
 
 void encode_siass(NCS_UBAID *ub,
@@ -2211,35 +2208,19 @@
  *******************************************************************/
 static uint32_t enc_cs_si_trans(AVD_CL_CB *cb, NCS_MBCSV_CB_ENC *enc, uint32_t 
*num_of_obj)
 {
-       uint32_t status = NCSCC_RC_SUCCESS;
-       AVSV_SI_TRANS_CKPT_MSG si_trans_ckpt;
-       EDU_ERR ederror = static_cast<EDU_ERR>(0);
-
        TRACE_ENTER();
 
        for (std::map<std::string, AVD_SG*>::const_iterator it = sg_db->begin();
                        it != sg_db->end(); it++) {
                AVD_SG *sg = it->second;
-           if (sg->si_tobe_redistributed != nullptr) { 
-               si_trans_ckpt.sg_name = sg->name;
-               si_trans_ckpt.si_name = sg->si_tobe_redistributed->name;
-               si_trans_ckpt.min_su_name = sg->min_assigned_su->name;
-               si_trans_ckpt.max_su_name = sg->max_assigned_su->name;
+               if (sg->si_tobe_redistributed != nullptr) {
+                       encode_si_trans(&enc->io_uba, sg, enc->i_peer_version);
+                       (*num_of_obj)++;
+               }
+       }
 
-               status = m_NCS_EDU_VER_EXEC(&cb->edu_hdl, 
avsv_edp_ckpt_msg_si_trans,
-                               &enc->io_uba, EDP_OP_TYPE_ENC, &si_trans_ckpt, 
&ederror,
-                               enc->i_peer_version);
-
-               if (status != NCSCC_RC_SUCCESS) {
-                       LOG_ER("%s: encode failed, ederror=%u", __FUNCTION__, 
ederror);
-                       return status;
-               }
-
-               (*num_of_obj)++;
-           }
-       }
-       TRACE_LEAVE2("status '%u'", status);
-       return status;
+       TRACE_LEAVE();
+       return NCSCC_RC_SUCCESS;
 }
 
 /****************************************************************************\
diff --git a/osaf/services/saf/amf/amfd/include/ckpt.h 
b/osaf/services/saf/amf/amfd/include/ckpt.h
--- a/osaf/services/saf/amf/amfd/include/ckpt.h
+++ b/osaf/services/saf/amf/amfd/include/ckpt.h
@@ -49,6 +49,7 @@
 struct cl_cb_tag;
 class AVD_APP;
 class AVD_COMP;
+class AVD_SG;
 /* 
  * SU SI Relationship checkpoint encode/decode message structure..
  */
@@ -160,5 +161,7 @@
 
 void encode_siass(NCS_UBAID *ub, const struct avd_su_si_rel_tag *susi, const 
uint16_t peer_version);
 void decode_siass(NCS_UBAID *ub, struct avsv_su_si_rel_ckpt_msg *susi, const 
uint16_t peer_version);
+void encode_si_trans(NCS_UBAID *ub, const AVD_SG *sg, const uint16_t 
peer_version);
+void decode_si_trans(NCS_UBAID *ub, AVSV_SI_TRANS_CKPT_MSG *msg, const 
uint16_t peer_version);
 
 #endif
diff --git a/osaf/services/saf/amf/amfd/include/ckpt_edu.h 
b/osaf/services/saf/amf/amfd/include/ckpt_edu.h
--- a/osaf/services/saf/amf/amfd/include/ckpt_edu.h
+++ b/osaf/services/saf/amf/amfd/include/ckpt_edu.h
@@ -61,7 +61,4 @@
                                              NCSCONTEXT ptr, uint32_t 
*ptr_data_len,
                                              EDU_BUF_ENV *buf_env, EDP_OP_TYPE 
op, EDU_ERR *o_err);
 
-uint32_t avsv_edp_ckpt_msg_si_trans(EDU_HDL *hdl, EDU_TKN *edu_tkn,
-                                             NCSCONTEXT ptr, uint32_t 
*ptr_data_len,
-                                             EDU_BUF_ENV *buf_env, EDP_OP_TYPE 
op, EDU_ERR *o_err);
 #endif
diff --git a/osaf/services/saf/amf/amfd/tests/test_ckpt_enc_dec.cc 
b/osaf/services/saf/amf/amfd/tests/test_ckpt_enc_dec.cc
--- a/osaf/services/saf/amf/amfd/tests/test_ckpt_enc_dec.cc
+++ b/osaf/services/saf/amf/amfd/tests/test_ckpt_enc_dec.cc
@@ -208,4 +208,42 @@
   ASSERT_EQ(susi_ckpt.csi_add_rem, static_cast<SaBoolT>(0));
   ASSERT_EQ(Amf::to_string(&susi_ckpt.comp_name), "comp_name");
   ASSERT_EQ(Amf::to_string(&susi_ckpt.csi_name), "csi_name");
-}
\ No newline at end of file
+}
+
+TEST_F(CkptEncDecTest, testEncDecAvdSiTrans) {
+  int rc = 0;
+  SG_2N sg;
+  AVD_SI tobe_redistributed;
+  AVD_SU min_assigned_su;
+  AVD_SU max_assigned_su;
+  std::string sg_name("sg_name");
+  std::string si_name("si_name");
+  std::string min_name("min_name");
+  std::string max_name("max_name");
+  AVSV_SI_TRANS_CKPT_MSG msg;
+
+  min_assigned_su.name = *(asSaNameT(min_name));
+  max_assigned_su.name = *(asSaNameT(max_name));
+  tobe_redistributed.name = *(asSaNameT(si_name));
+  sg.name = *(asSaNameT(sg_name));
+  sg.si_tobe_redistributed = &tobe_redistributed;
+  sg.min_assigned_su = &min_assigned_su;
+  sg.max_assigned_su = &max_assigned_su;
+
+  rc = ncs_enc_init_space(&enc.io_uba);
+  ASSERT_TRUE(rc == NCSCC_RC_SUCCESS);
+
+  enc.io_msg_type = NCS_MBCSV_MSG_ASYNC_UPDATE;
+  enc.io_action = NCS_MBCSV_ACT_UPDATE;
+  enc.io_reo_hdl = (MBCSV_REO_HDL)&sg;
+  enc.io_reo_type = AVSV_CKPT_AVD_SI_TRANS;
+  enc.i_peer_version = AVD_MBCSV_SUB_PART_VERSION_4;
+
+  encode_si_trans(&enc.io_uba, static_cast<AVD_SG*>(&sg), enc.i_peer_version);
+  decode_si_trans(&enc.io_uba, &msg, enc.i_peer_version);
+
+  ASSERT_EQ(Amf::to_string(&msg.sg_name), "sg_name");
+  ASSERT_EQ(Amf::to_string(&msg.si_name), "si_name");
+  ASSERT_EQ(Amf::to_string(&msg.min_su_name), "min_name");
+  ASSERT_EQ(Amf::to_string(&msg.max_su_name), "max_name");
+}

------------------------------------------------------------------------------
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to