diff --git a/include/util/tbuffer.h b/include/util/tbuffer.h index 45c0fd6ecb..daa6c23bc8 100644 --- a/include/util/tbuffer.h +++ b/include/util/tbuffer.h @@ -27,7 +27,7 @@ typedef struct SBufferWriter SBufferWriter; typedef struct SBufferReader SBufferReader; // SBuffer -#define BUFFER_INITILIZER ((SBuffer){0, 0, NULL}) +#define BUFFER_INITIALIZER ((SBuffer){0, 0, NULL}) static int32_t tBufferInit(SBuffer *buffer); static int32_t tBufferDestroy(SBuffer *buffer); static int32_t tBufferClear(SBuffer *buffer); @@ -38,9 +38,10 @@ static int32_t tBufferAppend(SBuffer *buffer, const void *data, uint32_t size); #define tBufferGetData(buffer) ((const void *)(buffer)->data) // SBufferWriter -#define tBufferWriterInit(forward, offset, buffer) ((SBufferWriter){forward, offset, buffer}) -#define tBufferWriterDestroy(writer) ((void)0) -#define tBufferWriterGetOffset(writer) ((writer)->offset) +#define BUFFER_WRITER_INITIALIZER(forward, offset, buffer) ((SBufferWriter){forward, offset, buffer}) +#define tBufferWriterDestroy(writer) ((void)0) +#define tBufferWriterGetOffset(writer) ((writer)->offset) +static int32_t tBufferWriterInit(SBufferWriter *writer, bool forward, uint32_t offset, SBuffer *buffer); static int32_t tBufferPutFixed(SBufferWriter *writer, const void *data, uint32_t size); static int32_t tBufferPutI8(SBufferWriter *writer, int8_t value); static int32_t tBufferPutI16(SBufferWriter *writer, int16_t value); @@ -62,9 +63,10 @@ static int32_t tBufferPutF32(SBufferWriter *writer, float value); static int32_t tBufferPutF64(SBufferWriter *writer, double value); // SBufferReader -#define tBufferReaderInit(forward, offset, buffer) ((SBufferReader){forward, offset, buffer}) -#define tBufferReaderDestroy(reader) ((void)0) -#define tBufferReaderGetOffset(reader) ((reader)->offset) +#define BUFFER_READER_INITIALIZER(forward, offset, buffer) ((SBufferReader){forward, offset, buffer}) +#define tBufferReaderDestroy(reader) ((void)0) +#define tBufferReaderGetOffset(reader) ((reader)->offset) +static int32_t tBufferReaderInit(SBufferReader *reader, bool forward, uint32_t offset, SBuffer *buffer); static int32_t tBufferGetFixed(SBufferReader *reader, void *data, uint32_t size); static int32_t tBufferGetI8(SBufferReader *reader, int8_t *value); static int32_t tBufferGetI16(SBufferReader *reader, int16_t *value); diff --git a/include/util/tbuffer.inc b/include/util/tbuffer.inc index 5e130acc64..8650b44f70 100644 --- a/include/util/tbuffer.inc +++ b/include/util/tbuffer.inc @@ -82,6 +82,13 @@ static int32_t tBufferAppend(SBuffer *buffer, const void *data, uint32_t size) { } // SBufferWriter +static int32_t tBufferWriterInit(SBufferWriter *writer, bool forward, uint32_t offset, SBuffer *buffer) { + writer->forward = forward; + writer->offset = offset; + writer->buffer = buffer; + return 0; +} + static FORCE_INLINE int32_t tBufferPutFixed(SBufferWriter *writer, const void *data, uint32_t size) { if (!writer->forward && writer->offset < size) { return TSDB_CODE_OPS_NOT_SUPPORT; @@ -189,6 +196,13 @@ static FORCE_INLINE int32_t tBufferPutF64(SBufferWriter *writer, double value) { } // SBufferReader +static int32_t tBufferReaderInit(SBufferReader *reader, bool forward, uint32_t offset, SBuffer *buffer) { + reader->forward = forward; + reader->offset = offset; + reader->buffer = buffer; + return 0; +} + static int32_t tBufferGetFixed(SBufferReader *reader, void *data, uint32_t size) { if ((reader->forward && reader->offset + size > reader->buffer->capacity) || (!reader->forward && reader->offset < size)) { diff --git a/source/util/test/bufferTest.cpp b/source/util/test/bufferTest.cpp index 043f0716ab..310f1ffb68 100644 --- a/source/util/test/bufferTest.cpp +++ b/source/util/test/bufferTest.cpp @@ -9,7 +9,9 @@ typedef struct { } STestStruct; TEST(BufferTest, simpleTest1) { - SBuffer buffer = tBufferInit(); + SBuffer buffer; + + tBufferInit(&buffer); GTEST_ASSERT_EQ(tBufferGetSize(&buffer), 0); GTEST_ASSERT_EQ(tBufferGetData(&buffer), nullptr); @@ -20,11 +22,13 @@ TEST(BufferTest, simpleTest1) { TEST(BufferTest, forwardWriteAndRead) { int32_t code = 0; bool forward = true; - SBuffer buffer = tBufferInit(); + SBuffer buffer; + + tBufferInit(&buffer); taosSeedRand(taosGetTimestampSec()); // write - SBufferWriter writer = tBufferWriterInit(forward, tBufferGetSize(&buffer), &buffer); + SBufferWriter writer = BUFFER_WRITER_INITIALIZER(forward, tBufferGetSize(&buffer), &buffer); /* fix-len struct */ STestStruct testStruct = {1, 2}; @@ -250,7 +254,7 @@ TEST(BufferTest, forwardWriteAndRead) { tBufferWriterDestroy(&writer); // read - SBufferReader reader = tBufferReaderInit(forward, 0, &buffer); + SBufferReader reader = BUFFER_READER_INITIALIZER(forward, 0, &buffer); /* fix-len struct */ STestStruct testStruct2 = {1, 2}; @@ -372,11 +376,13 @@ TEST(BufferTest, forwardWriteAndRead) { TEST(BufferTest, backwardWriteAndRead) { int32_t code = 0; bool forward = false; - SBuffer buffer = tBufferInit(); + SBuffer buffer; + + tBufferInit(&buffer); taosSeedRand(taosGetTimestampSec()); // write - SBufferWriter writer = tBufferWriterInit(forward, 4096, &buffer); + SBufferWriter writer = BUFFER_WRITER_INITIALIZER(forward, 4096, &buffer); /* fix-len struct */ STestStruct testStruct = {1, 2}; @@ -602,7 +608,7 @@ TEST(BufferTest, backwardWriteAndRead) { tBufferWriterDestroy(&writer); // read - SBufferReader reader = tBufferReaderInit(forward, 4096, &buffer); + SBufferReader reader = BUFFER_READER_INITIALIZER(forward, 4096, &buffer); /* fix-len struct */ STestStruct testStruct2 = {1, 2};