tb_long_t tb_object_writ_to_data(tb_object_ref_t object, tb_byte_t* data, tb_size_t size, tb_size_t format) { // check tb_assert_and_check_return_val(object && data && size, -1); // make stream tb_long_t writ = -1; tb_stream_ref_t stream = tb_stream_init_from_data(data, size); if (stream) { // open and writ stream if (tb_stream_open(stream)) writ = tb_object_writ(object, stream, format); // exit stream tb_stream_exit(stream); } // ok? return writ; }
tb_void_t tb_dump_data(tb_byte_t const* data, tb_size_t size) { // check tb_assert_and_check_return(data && size); // init stream tb_stream_ref_t stream = tb_stream_init_from_data(data, size); if (stream) { // open stream if (tb_stream_open(stream)) { // dump stream tb_dump_data_from_stream(stream); } // exit stream tb_stream_exit(stream); } }
tb_object_ref_t tb_object_read_from_data(tb_byte_t const* data, tb_size_t size) { // check tb_assert_and_check_return_val(data && size, tb_null); // init tb_object_ref_t object = tb_null; // make stream tb_stream_ref_t stream = tb_stream_init_from_data(data, size); tb_assert_and_check_return_val(stream, tb_null); // read object if (tb_stream_open(stream)) object = tb_object_read(stream); // exit stream tb_stream_exit(stream); // ok? return object; }