ack, code review only/Thanks HansN

On 11/25/2015 07:32 AM, Gary Lee wrote:
>   osaf/services/saf/amf/amfd/ckpt_dec.cc                |  51 ++++++---------
>   osaf/services/saf/amf/amfd/ckpt_edu.cc                |  54 
> -----------------
>   osaf/services/saf/amf/amfd/ckpt_enc.cc                |  38 +++++------
>   osaf/services/saf/amf/amfd/include/ckpt.h             |   2 +
>   osaf/services/saf/amf/amfd/include/ckpt_edu.h         |   3 -
>   osaf/services/saf/amf/amfd/tests/test_ckpt_enc_dec.cc |  60 
> +++++++++++++++++++
>   6 files changed, 98 insertions(+), 110 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
> @@ -195,6 +195,16 @@
>       dec_cs_async_updt_cnt
>   };
>   
> +void decode_cb(NCS_UBAID *ub,
> +     AVD_CL_CB *cb,
> +     const uint16_t peer_version)
> +{
> +     osaf_decode_uint32(ub, reinterpret_cast<uint32_t*>(&cb->init_state));
> +     osaf_decode_satimet(ub, &cb->cluster_init_time);
> +     osaf_decode_uint32(ub, &cb->nodes_exit_cnt);
> +}
> +
> +
>   
> /****************************************************************************\
>    * Function: dec_cb_config
>    *
> @@ -209,32 +219,18 @@
>    *
>    *
>   \**************************************************************************/
> -static uint32_t dec_cb_config(AVD_CL_CB *cb_ptr, NCS_MBCSV_CB_DEC *dec)
> +static uint32_t dec_cb_config(AVD_CL_CB *cb, NCS_MBCSV_CB_DEC *dec)
>   {
> -     uint32_t status = NCSCC_RC_SUCCESS;
> -     EDU_ERR ederror = static_cast<EDU_ERR>(0);
> -     AVD_CL_CB *cb;
> -
> -     cb = cb_ptr;
> -
>       TRACE_ENTER();
> -     /*
> -      * For updating CB, action is always to do update. We don't have add 
> and remove
> -      * action on CB. So call EDU to decode CB data.
> -      */
> -     status = m_NCS_EDU_VER_EXEC(&cb->edu_hdl, avsv_edp_ckpt_msg_cb, 
> &dec->i_uba,
> -                                 EDP_OP_TYPE_DEC, (AVD_CL_CB **)&cb, 
> &ederror, dec->i_peer_version);
> -
> -     if (status != NCSCC_RC_SUCCESS) {
> -             LOG_ER("%s: decode failed, ederror=%u", __FUNCTION__, ederror);
> -             return status;
> -     }
> +
> +     osafassert(dec->i_action == NCS_MBCSV_ACT_UPDATE);
> +     decode_cb(&dec->i_uba, cb, dec->i_peer_version);
>   
>       /* Since update is successful, update async update count */
>       cb->async_updt_cnt.cb_updt++;
>   
> -     TRACE_LEAVE2("status '%u'", status);
> -     return status;
> +     TRACE_LEAVE();
> +     return NCSCC_RC_SUCCESS;
>   }
>   
>   
> /****************************************************************************\
> @@ -2122,22 +2118,15 @@
>   \**************************************************************************/
>   static uint32_t dec_cs_cb_config(AVD_CL_CB *cb, NCS_MBCSV_CB_DEC *dec, 
> uint32_t num_of_obj)
>   {
> -     uint32_t status = NCSCC_RC_SUCCESS;
> -     EDU_ERR ederror = static_cast<EDU_ERR>(0);
> -     AVD_CL_CB *cb_ptr;
> -
>       TRACE_ENTER();
>   
> -     cb_ptr = cb;
>       /*
>        * Send the CB data.
>        */
> -     status = m_NCS_EDU_VER_EXEC(&cb->edu_hdl, avsv_edp_ckpt_msg_cb, 
> &dec->i_uba,
> -                                 EDP_OP_TYPE_DEC, (AVD_CL_CB **)&cb_ptr, 
> &ederror, dec->i_peer_version);
> -     osafassert(status == NCSCC_RC_SUCCESS);
> -
> -     TRACE_LEAVE2("status '%u'", status);
> -     return status;
> +     decode_cb(&dec->i_uba, cb, dec->i_peer_version);
> +
> +     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
> @@ -53,10 +53,6 @@
>   
>       m_NCS_EDU_HDL_INIT(&cb->edu_hdl);
>   
> -     rc = m_NCS_EDU_COMPILE_EDP(&cb->edu_hdl, avsv_edp_ckpt_msg_cb, &err);
> -     if (rc != NCSCC_RC_SUCCESS)
> -             goto error;
> -
>       rc = m_NCS_EDU_COMPILE_EDP(&cb->edu_hdl, avsv_edp_ckpt_msg_node, &err);
>       if (rc != NCSCC_RC_SUCCESS)
>               goto error;
> @@ -92,56 +88,6 @@
>   
>   
> /*****************************************************************************
>   
> -  PROCEDURE NAME:   avsv_edp_ckpt_msg_cb
> -
> -  DESCRIPTION:      EDU program handler for "AVD_CL_CB" data. This
> -                    function is invoked by EDU for performing encode/decode
> -                    operation on "AVD_CL_CB" data.
> -
> -  RETURNS:          NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE
> -
> -*****************************************************************************/
> -uint32_t avsv_edp_ckpt_msg_cb(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;
> -     AVD_CL_CB *struct_ptr = nullptr, **d_ptr = nullptr;
> -
> -     EDU_INST_SET avsv_ckpt_msg_cb_rules[] = {
> -             {EDU_START, avsv_edp_ckpt_msg_cb, 0, 0, 0, sizeof(AVD_CL_CB), 
> 0, nullptr},
> -
> -             /* AVD Control block information */
> -             {EDU_EXEC, ncs_edp_int, 0, 0, 0,
> -              (long)&((AVD_CL_CB *)0)->init_state, 0, nullptr},
> -             {EDU_EXEC, m_NCS_EDP_SATIMET, 0, 0, 0,
> -              (long)&((AVD_CL_CB *)0)->cluster_init_time, 0, nullptr},
> -             {EDU_EXEC, ncs_edp_uns32, 0, 0, 0,
> -              (long)&((AVD_CL_CB *)0)->nodes_exit_cnt, 0, nullptr},
> -
> -             {EDU_END, 0, 0, 0, 0, 0, 0, nullptr},
> -     };
> -
> -     if (op == EDP_OP_TYPE_ENC) {
> -             struct_ptr = (AVD_CL_CB *)ptr;
> -     } else if (op == EDP_OP_TYPE_DEC) {
> -             d_ptr = (AVD_CL_CB **)ptr;
> -             if (*d_ptr == nullptr) {
> -                     *o_err = EDU_ERR_MEM_FAIL;
> -                     return NCSCC_RC_FAILURE;
> -             }
> -             /*memset(*d_ptr, '\0', sizeof(AVD_CL_CB)); */
> -             struct_ptr = *d_ptr;
> -     } else {
> -        struct_ptr = static_cast<AVD_CL_CB*>(ptr);
> -     }
> -
> -     rc = m_NCS_EDU_RUN_RULES(hdl, edu_tkn, avsv_ckpt_msg_cb_rules, 
> struct_ptr, ptr_data_len, buf_env, op, o_err);
> -
> -     return rc;
> -}
> -
> -/*****************************************************************************
> -
>     PROCEDURE NAME:   avsv_edp_ckpt_msg_cluster
>   
>     DESCRIPTION:      EDU program handler for "AVD_CLUSTER" data. This
> 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
> @@ -196,6 +196,15 @@
>       enc_cs_async_updt_cnt
>   };
>   
> +void encode_cb(NCS_UBAID *ub,
> +     const AVD_CL_CB *cb,
> +     const uint16_t peer_version)
> +{
> +     osaf_encode_uint32(ub, cb->init_state);
> +     osaf_encode_satimet(ub, cb->cluster_init_time);
> +     osaf_encode_uint32(ub, cb->nodes_exit_cnt);
> +}
> +
>   
> /****************************************************************************\
>    * Function: enc_cb_config
>    *
> @@ -212,23 +221,17 @@
>   \**************************************************************************/
>   static uint32_t enc_cb_config(AVD_CL_CB *cb, NCS_MBCSV_CB_ENC *enc)
>   {
> -     uint32_t status = NCSCC_RC_SUCCESS;
> -     EDU_ERR ederror = static_cast<EDU_ERR>(0);
>       TRACE_ENTER();
>   
>       /*
>        * For updating CB, action is always to do update. We don't have add 
> and remove
>        * action on CB. So call EDU to encode CB data.
>        */
> -     status = m_NCS_EDU_VER_EXEC(&cb->edu_hdl, avsv_edp_ckpt_msg_cb, 
> &enc->io_uba,
> -                                 EDP_OP_TYPE_ENC, cb, &ederror, 
> enc->i_peer_version);
> +     osafassert(enc->io_action == NCS_MBCSV_ACT_UPDATE);
> +     encode_cb(&enc->io_uba, cb, enc->i_peer_version);
>   
> -     if (status != NCSCC_RC_SUCCESS) {
> -             LOG_ER("%s: encode failed, ederror=%u", __FUNCTION__, ederror);
> -             return status;
> -     }
> -     TRACE_LEAVE2("status '%u'", status);
> -     return status;
> +     TRACE_LEAVE();
> +     return NCSCC_RC_SUCCESS;
>   }
>   
>   
> /****************************************************************************\
> @@ -1890,25 +1893,16 @@
>   \**************************************************************************/
>   static uint32_t enc_cs_cb_config(AVD_CL_CB *cb, NCS_MBCSV_CB_ENC *enc, 
> uint32_t *num_of_obj)
>   {
> -     uint32_t status = NCSCC_RC_SUCCESS;
> -     EDU_ERR ederror = static_cast<EDU_ERR>(0);
>       TRACE_ENTER();
>   
>       /*
>        * Send the CB data.
>        */
> -     status = m_NCS_EDU_VER_EXEC(&cb->edu_hdl, avsv_edp_ckpt_msg_cb, 
> &enc->io_uba,
> -                                 EDP_OP_TYPE_ENC, cb, &ederror, 
> enc->i_peer_version);
> -
> -     if (status != NCSCC_RC_SUCCESS) {
> -             LOG_ER("%s: encode failed, ederror=%u", __FUNCTION__, ederror);
> -             return NCSCC_RC_FAILURE;
> -     }
> -
> +     encode_cb(&enc->io_uba, cb, enc->i_peer_version);
>       *num_of_obj = 1;
>   
> -     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
> @@ -157,5 +157,7 @@
>   void decode_app(NCS_UBAID *ub, AVD_APP *app);
>   void encode_comp(NCS_UBAID *ub, const AVD_COMP *comp);
>   void decode_comp(NCS_UBAID *ub, AVD_COMP *comp);
> +void encode_cb(NCS_UBAID *ub, const struct cl_cb_tag *cb, const uint16_t 
> peer_version);
> +void decode_cb(NCS_UBAID *ub, struct cl_cb_tag *cb, 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
> @@ -35,9 +35,6 @@
>   
>   /* Function Definations of avd_ckpt_edu.c */
>   uint32_t avd_compile_ckpt_edp(AVD_CL_CB *cb);
> -uint32_t avsv_edp_ckpt_msg_cb(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 avsv_edp_ckpt_msg_cluster(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);
> 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
> @@ -166,3 +166,63 @@
>     ASSERT_EQ(comp.saAmfCompRestartCount, static_cast<uint32_t>(0x77665544));
>     ASSERT_EQ(Amf::to_string(&comp.saAmfCompCurrProxyName), "CompProxyName");
>   }
> +
> +
> +TEST_F(CkptEncDecTest, testEncDecAvdCb) {
> +  int rc = 0;
> +  AVD_CL_CB cb;
> +
> +  cb.init_state = AVD_APP_STATE;
> +  cb.cluster_init_time = 0x8877665544332211;
> +  cb.nodes_exit_cnt = 0x55443322;
> +
> +  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)&cb;
> +  enc.io_reo_type = AVSV_CKPT_AVD_CB_CONFIG;
> +  enc.i_peer_version = AVD_MBCSV_SUB_PART_VERSION_3;
> +
> +  encode_cb(&enc.io_uba, &cb, enc.i_peer_version);
> +
> +  // retrieve AVD_CL_CB encoded data from the USR buf
> +  int32_t size = enc.io_uba.ttl;
> +  char *tmpData = new char[size];
> +
> +  char *buf = sysf_data_at_start(enc.io_uba.ub, size, tmpData);
> +  uint32_t offset = 0;
> +  uint32_t *fld = reinterpret_cast<uint32_t*>(&buf[offset]);
> +
> +  // verify that the encoded value is in network byte order
> +  if (isLittleEndian()) {
> +    // app_state
> +    ASSERT_EQ(*fld++, static_cast<uint32_t>(0x04000000));
> +    // cluster_init_time
> +    ASSERT_EQ(*fld++, static_cast<uint32_t>(0x55667788));
> +    ASSERT_EQ(*fld++, static_cast<uint32_t>(0x11223344));
> +    // nodes_exit_cnt
> +    ASSERT_EQ(*fld, static_cast<uint32_t>(0x22334455));
> +  } else {
> +    // app_state
> +    ASSERT_EQ(*fld++, static_cast<uint32_t>(0x00000004));
> +    // cluster_init_time
> +    ASSERT_EQ(*fld++, static_cast<uint32_t>(0x88776655));
> +    ASSERT_EQ(*fld++, static_cast<uint32_t>(0x44332211));
> +    // nodes_exit_cnt
> +    ASSERT_EQ(*fld, static_cast<uint32_t>(0x55443322));
> +  }
> +
> +  delete [] tmpData;
> +
> +  cb.init_state = AVD_INIT_BGN;
> +  cb.cluster_init_time = 0x0;
> +  cb.nodes_exit_cnt = 0x0;
> +
> +  decode_cb(&enc.io_uba, &cb, enc.i_peer_version);
> +
> +  ASSERT_EQ(cb.init_state, AVD_APP_STATE);
> +  ASSERT_EQ(cb.cluster_init_time, static_cast<SaTimeT>(0x8877665544332211));
> +  ASSERT_EQ(cb.nodes_exit_cnt, static_cast<uint32_t>(0x55443322));
> +}


------------------------------------------------------------------------------
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=254741551&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to