dr_cvt_result_t dr_cvt_fun_pbuf_decode( LPDRMETA meta, void * output, size_t * output_capacity, const void * input, size_t * input_capacity, void * ctx, error_monitor_t em, int debug) { int r; r = dr_pbuf_read(output, *output_capacity, input, *input_capacity, meta, em); if (r < 0) { CPE_ERROR( em, "decode %s: pbuf: fail, input buf "FMT_SIZE_T", output buf "FMT_SIZE_T, dr_meta_name(meta), *input_capacity, *output_capacity); return dr_cvt_result_error; } if (debug) { CPE_INFO( em, "decode %s: pbuf: ok, %d data to output, input-size="FMT_SIZE_T, dr_meta_name(meta), r, *input_capacity); } return dr_cvt_result_success; }
int ReadTest::read(const char * decodeTypeName, const void * data, size_t data_size) { LPDRMETA meta = dr_lib_find_meta_by_name(m_metaLib, decodeTypeName); EXPECT_TRUE(meta) << "get meta " << decodeTypeName << " error!"; t_elist_clear(); char buf[1024]; int len = dr_pbuf_write(buf, sizeof(buf), data, data_size, meta, t_em()); EXPECT_GT(len, 0); int r = dr_pbuf_read(m_result_buffer, sizeof(m_result_buffer), buf, len, meta, t_em()); m_result_bufffer_len = r; m_result_meta = meta; return r; }