more code
This commit is contained in:
parent
75f1d15be1
commit
bdfba4cad1
|
@ -27,7 +27,7 @@ typedef struct SBufferWriter SBufferWriter;
|
||||||
typedef struct SBufferReader SBufferReader;
|
typedef struct SBufferReader SBufferReader;
|
||||||
|
|
||||||
// SBuffer
|
// SBuffer
|
||||||
#define BUFFER_INITILIZER ((SBuffer){0, 0, NULL})
|
#define BUFFER_INITIALIZER ((SBuffer){0, 0, NULL})
|
||||||
static int32_t tBufferInit(SBuffer *buffer);
|
static int32_t tBufferInit(SBuffer *buffer);
|
||||||
static int32_t tBufferDestroy(SBuffer *buffer);
|
static int32_t tBufferDestroy(SBuffer *buffer);
|
||||||
static int32_t tBufferClear(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)
|
#define tBufferGetData(buffer) ((const void *)(buffer)->data)
|
||||||
|
|
||||||
// SBufferWriter
|
// SBufferWriter
|
||||||
#define tBufferWriterInit(forward, offset, buffer) ((SBufferWriter){forward, offset, buffer})
|
#define BUFFER_WRITER_INITIALIZER(forward, offset, buffer) ((SBufferWriter){forward, offset, buffer})
|
||||||
#define tBufferWriterDestroy(writer) ((void)0)
|
#define tBufferWriterDestroy(writer) ((void)0)
|
||||||
#define tBufferWriterGetOffset(writer) ((writer)->offset)
|
#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 tBufferPutFixed(SBufferWriter *writer, const void *data, uint32_t size);
|
||||||
static int32_t tBufferPutI8(SBufferWriter *writer, int8_t value);
|
static int32_t tBufferPutI8(SBufferWriter *writer, int8_t value);
|
||||||
static int32_t tBufferPutI16(SBufferWriter *writer, int16_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);
|
static int32_t tBufferPutF64(SBufferWriter *writer, double value);
|
||||||
|
|
||||||
// SBufferReader
|
// SBufferReader
|
||||||
#define tBufferReaderInit(forward, offset, buffer) ((SBufferReader){forward, offset, buffer})
|
#define BUFFER_READER_INITIALIZER(forward, offset, buffer) ((SBufferReader){forward, offset, buffer})
|
||||||
#define tBufferReaderDestroy(reader) ((void)0)
|
#define tBufferReaderDestroy(reader) ((void)0)
|
||||||
#define tBufferReaderGetOffset(reader) ((reader)->offset)
|
#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 tBufferGetFixed(SBufferReader *reader, void *data, uint32_t size);
|
||||||
static int32_t tBufferGetI8(SBufferReader *reader, int8_t *value);
|
static int32_t tBufferGetI8(SBufferReader *reader, int8_t *value);
|
||||||
static int32_t tBufferGetI16(SBufferReader *reader, int16_t *value);
|
static int32_t tBufferGetI16(SBufferReader *reader, int16_t *value);
|
||||||
|
|
|
@ -82,6 +82,13 @@ static int32_t tBufferAppend(SBuffer *buffer, const void *data, uint32_t size) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// SBufferWriter
|
// 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) {
|
static FORCE_INLINE int32_t tBufferPutFixed(SBufferWriter *writer, const void *data, uint32_t size) {
|
||||||
if (!writer->forward && writer->offset < size) {
|
if (!writer->forward && writer->offset < size) {
|
||||||
return TSDB_CODE_OPS_NOT_SUPPORT;
|
return TSDB_CODE_OPS_NOT_SUPPORT;
|
||||||
|
@ -189,6 +196,13 @@ static FORCE_INLINE int32_t tBufferPutF64(SBufferWriter *writer, double value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// SBufferReader
|
// 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) {
|
static int32_t tBufferGetFixed(SBufferReader *reader, void *data, uint32_t size) {
|
||||||
if ((reader->forward && reader->offset + size > reader->buffer->capacity) ||
|
if ((reader->forward && reader->offset + size > reader->buffer->capacity) ||
|
||||||
(!reader->forward && reader->offset < size)) {
|
(!reader->forward && reader->offset < size)) {
|
||||||
|
|
|
@ -9,7 +9,9 @@ typedef struct {
|
||||||
} STestStruct;
|
} STestStruct;
|
||||||
|
|
||||||
TEST(BufferTest, simpleTest1) {
|
TEST(BufferTest, simpleTest1) {
|
||||||
SBuffer buffer = tBufferInit();
|
SBuffer buffer;
|
||||||
|
|
||||||
|
tBufferInit(&buffer);
|
||||||
|
|
||||||
GTEST_ASSERT_EQ(tBufferGetSize(&buffer), 0);
|
GTEST_ASSERT_EQ(tBufferGetSize(&buffer), 0);
|
||||||
GTEST_ASSERT_EQ(tBufferGetData(&buffer), nullptr);
|
GTEST_ASSERT_EQ(tBufferGetData(&buffer), nullptr);
|
||||||
|
@ -20,11 +22,13 @@ TEST(BufferTest, simpleTest1) {
|
||||||
TEST(BufferTest, forwardWriteAndRead) {
|
TEST(BufferTest, forwardWriteAndRead) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
bool forward = true;
|
bool forward = true;
|
||||||
SBuffer buffer = tBufferInit();
|
SBuffer buffer;
|
||||||
|
|
||||||
|
tBufferInit(&buffer);
|
||||||
taosSeedRand(taosGetTimestampSec());
|
taosSeedRand(taosGetTimestampSec());
|
||||||
|
|
||||||
// write
|
// write
|
||||||
SBufferWriter writer = tBufferWriterInit(forward, tBufferGetSize(&buffer), &buffer);
|
SBufferWriter writer = BUFFER_WRITER_INITIALIZER(forward, tBufferGetSize(&buffer), &buffer);
|
||||||
|
|
||||||
/* fix-len struct */
|
/* fix-len struct */
|
||||||
STestStruct testStruct = {1, 2};
|
STestStruct testStruct = {1, 2};
|
||||||
|
@ -250,7 +254,7 @@ TEST(BufferTest, forwardWriteAndRead) {
|
||||||
tBufferWriterDestroy(&writer);
|
tBufferWriterDestroy(&writer);
|
||||||
|
|
||||||
// read
|
// read
|
||||||
SBufferReader reader = tBufferReaderInit(forward, 0, &buffer);
|
SBufferReader reader = BUFFER_READER_INITIALIZER(forward, 0, &buffer);
|
||||||
|
|
||||||
/* fix-len struct */
|
/* fix-len struct */
|
||||||
STestStruct testStruct2 = {1, 2};
|
STestStruct testStruct2 = {1, 2};
|
||||||
|
@ -372,11 +376,13 @@ TEST(BufferTest, forwardWriteAndRead) {
|
||||||
TEST(BufferTest, backwardWriteAndRead) {
|
TEST(BufferTest, backwardWriteAndRead) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
bool forward = false;
|
bool forward = false;
|
||||||
SBuffer buffer = tBufferInit();
|
SBuffer buffer;
|
||||||
|
|
||||||
|
tBufferInit(&buffer);
|
||||||
taosSeedRand(taosGetTimestampSec());
|
taosSeedRand(taosGetTimestampSec());
|
||||||
|
|
||||||
// write
|
// write
|
||||||
SBufferWriter writer = tBufferWriterInit(forward, 4096, &buffer);
|
SBufferWriter writer = BUFFER_WRITER_INITIALIZER(forward, 4096, &buffer);
|
||||||
|
|
||||||
/* fix-len struct */
|
/* fix-len struct */
|
||||||
STestStruct testStruct = {1, 2};
|
STestStruct testStruct = {1, 2};
|
||||||
|
@ -602,7 +608,7 @@ TEST(BufferTest, backwardWriteAndRead) {
|
||||||
tBufferWriterDestroy(&writer);
|
tBufferWriterDestroy(&writer);
|
||||||
|
|
||||||
// read
|
// read
|
||||||
SBufferReader reader = tBufferReaderInit(forward, 4096, &buffer);
|
SBufferReader reader = BUFFER_READER_INITIALIZER(forward, 4096, &buffer);
|
||||||
|
|
||||||
/* fix-len struct */
|
/* fix-len struct */
|
||||||
STestStruct testStruct2 = {1, 2};
|
STestStruct testStruct2 = {1, 2};
|
||||||
|
|
Loading…
Reference in New Issue