add data_writer_write_all

This commit is contained in:
lixianjing 2021-10-14 17:00:10 +08:00
parent ba8ed1d979
commit b2e8464bc8
4 changed files with 41 additions and 0 deletions

View File

@ -2,6 +2,7 @@
2021/10/13
* 增加函数str\_append\_n\_chars
* 增加函数data\_writer\_write\_all
2021/10/12
* 修复透明渐变窗口动画影响到顶层悬浮窗口的问题(感谢智明提供补丁)

View File

@ -60,3 +60,14 @@ ret_t data_writer_clear(const char* url) {
return ret;
}
int32_t data_writer_write_all(const char* url, const void* data, uint32_t size) {
int32_t s = 0;
data_writer_t* writer = data_writer_factory_create_writer(data_writer_factory(), url);
return_value_if_fail(writer != NULL, NULL);
s = data_writer_write(writer, 0, data, size);
data_writer_destroy(writer);
return s;
}

View File

@ -103,6 +103,18 @@ ret_t data_writer_destroy(data_writer_t* writer);
*/
ret_t data_writer_clear(const char* url);
/**
* @method data_writer_write_all
*
*
* @param {const char*} url URL
* @param {const void*} data
* @param {uint32_t} size
*
* @return {int32_t}
*/
int32_t data_writer_write_all(const char* url, const void* data, uint32_t size);
#define DATA_WRITER(writer) ((data_writer_t*)(writer))
END_C_DECLS

View File

@ -34,3 +34,20 @@ TEST(DataWriterWbuffer, wbuffer) {
data_writer_factory_destroy(f);
wbuffer_deinit(&wb);
}
TEST(DataWriterWbuffer, write_all) {
wbuffer_t wb;
char url[MAX_PATH + 1];
data_writer_factory_t* f = data_writer_factory_create();
wbuffer_init_extendable(&wb);
data_writer_wbuffer_build_url(&wb, url);
ASSERT_EQ(data_writer_factory_register(f, "wbuffer", data_writer_wbuffer_create), RET_OK);
ASSERT_EQ(data_writer_write_all(url, "hello world", 11u), 11);
ASSERT_EQ(wb.cursor, 11u);
ASSERT_EQ(memcmp(wb.data, "hello world", 11), 0);
data_writer_factory_destroy(f);
wbuffer_deinit(&wb);
}