feat: code optimization
This commit is contained in:
parent
9e7b43c836
commit
fa77a6d840
|
@ -2256,242 +2256,242 @@ static int32_t tDecodeTSmaWrapper(SDecoder* pDecoder, STSmaWrapper* pReq) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int idx;
|
int idx;
|
||||||
} SMCreateFullTextReq;
|
} SMCreateFullTextReq;
|
||||||
|
|
||||||
int32_t tSerializeSMCreateFullTextReq(void* buf, int32_t bufLen, SMCreateFullTextReq* pReq);
|
int32_t tSerializeSMCreateFullTextReq(void* buf, int32_t bufLen, SMCreateFullTextReq* pReq);
|
||||||
int32_t tDeserializeSMCreateFullTextReq(void* buf, int32_t bufLen, SMCreateFullTextReq* pReq);
|
int32_t tDeserializeSMCreateFullTextReq(void* buf, int32_t bufLen, SMCreateFullTextReq* pReq);
|
||||||
void tFreeSMCreateFullTextReq(SMCreateFullTextReq * pReq);
|
void tFreeSMCreateFullTextReq(SMCreateFullTextReq* pReq);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char name[TSDB_TABLE_FNAME_LEN];
|
char name[TSDB_TABLE_FNAME_LEN];
|
||||||
int8_t igNotExists;
|
int8_t igNotExists;
|
||||||
} SMDropFullTextReq;
|
} SMDropFullTextReq;
|
||||||
|
|
||||||
int32_t tSerializeSMDropFullTextReq(void* buf, int32_t bufLen, SMDropFullTextReq* pReq);
|
int32_t tSerializeSMDropFullTextReq(void* buf, int32_t bufLen, SMDropFullTextReq* pReq);
|
||||||
int32_t tDeserializeSMDropFullTextReq(void* buf, int32_t bufLen, SMDropFullTextReq* pReq);
|
int32_t tDeserializeSMDropFullTextReq(void* buf, int32_t bufLen, SMDropFullTextReq* pReq);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char indexFName[TSDB_INDEX_FNAME_LEN];
|
char indexFName[TSDB_INDEX_FNAME_LEN];
|
||||||
} SUserIndexReq;
|
} SUserIndexReq;
|
||||||
|
|
||||||
int32_t tSerializeSUserIndexReq(void* buf, int32_t bufLen, SUserIndexReq* pReq);
|
int32_t tSerializeSUserIndexReq(void* buf, int32_t bufLen, SUserIndexReq* pReq);
|
||||||
int32_t tDeserializeSUserIndexReq(void* buf, int32_t bufLen, SUserIndexReq* pReq);
|
int32_t tDeserializeSUserIndexReq(void* buf, int32_t bufLen, SUserIndexReq* pReq);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char dbFName[TSDB_DB_FNAME_LEN];
|
char dbFName[TSDB_DB_FNAME_LEN];
|
||||||
char tblFName[TSDB_TABLE_FNAME_LEN];
|
char tblFName[TSDB_TABLE_FNAME_LEN];
|
||||||
char colName[TSDB_COL_NAME_LEN];
|
char colName[TSDB_COL_NAME_LEN];
|
||||||
char indexType[TSDB_INDEX_TYPE_LEN];
|
char indexType[TSDB_INDEX_TYPE_LEN];
|
||||||
char indexExts[TSDB_INDEX_EXTS_LEN];
|
char indexExts[TSDB_INDEX_EXTS_LEN];
|
||||||
} SUserIndexRsp;
|
} SUserIndexRsp;
|
||||||
|
|
||||||
int32_t tSerializeSUserIndexRsp(void* buf, int32_t bufLen, const SUserIndexRsp* pRsp);
|
int32_t tSerializeSUserIndexRsp(void* buf, int32_t bufLen, const SUserIndexRsp* pRsp);
|
||||||
int32_t tDeserializeSUserIndexRsp(void* buf, int32_t bufLen, SUserIndexRsp* pRsp);
|
int32_t tDeserializeSUserIndexRsp(void* buf, int32_t bufLen, SUserIndexRsp* pRsp);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int8_t mqMsgType;
|
int8_t mqMsgType;
|
||||||
int32_t code;
|
int32_t code;
|
||||||
int32_t epoch;
|
int32_t epoch;
|
||||||
int64_t consumerId;
|
int64_t consumerId;
|
||||||
} SMqRspHead;
|
} SMqRspHead;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
SMsgHead head;
|
SMsgHead head;
|
||||||
char subKey[TSDB_SUBSCRIBE_KEY_LEN];
|
char subKey[TSDB_SUBSCRIBE_KEY_LEN];
|
||||||
int8_t withTbName;
|
int8_t withTbName;
|
||||||
int32_t epoch;
|
int32_t epoch;
|
||||||
uint64_t reqId;
|
uint64_t reqId;
|
||||||
int64_t consumerId;
|
int64_t consumerId;
|
||||||
int64_t waitTime;
|
int64_t waitTime;
|
||||||
int64_t currentOffset;
|
int64_t currentOffset;
|
||||||
} SMqPollReq;
|
} SMqPollReq;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int32_t vgId;
|
int32_t vgId;
|
||||||
int64_t offset;
|
int64_t offset;
|
||||||
SEpSet epSet;
|
SEpSet epSet;
|
||||||
} SMqSubVgEp;
|
} SMqSubVgEp;
|
||||||
|
|
||||||
static FORCE_INLINE int32_t tEncodeSMqSubVgEp(void** buf, const SMqSubVgEp* pVgEp) {
|
static FORCE_INLINE int32_t tEncodeSMqSubVgEp(void** buf, const SMqSubVgEp* pVgEp) {
|
||||||
int32_t tlen = 0;
|
int32_t tlen = 0;
|
||||||
tlen += taosEncodeFixedI32(buf, pVgEp->vgId);
|
tlen += taosEncodeFixedI32(buf, pVgEp->vgId);
|
||||||
tlen += taosEncodeFixedI64(buf, pVgEp->offset);
|
tlen += taosEncodeFixedI64(buf, pVgEp->offset);
|
||||||
tlen += taosEncodeSEpSet(buf, &pVgEp->epSet);
|
tlen += taosEncodeSEpSet(buf, &pVgEp->epSet);
|
||||||
return tlen;
|
return tlen;
|
||||||
|
}
|
||||||
|
|
||||||
|
static FORCE_INLINE void* tDecodeSMqSubVgEp(void* buf, SMqSubVgEp* pVgEp) {
|
||||||
|
buf = taosDecodeFixedI32(buf, &pVgEp->vgId);
|
||||||
|
buf = taosDecodeFixedI64(buf, &pVgEp->offset);
|
||||||
|
buf = taosDecodeSEpSet(buf, &pVgEp->epSet);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char topic[TSDB_TOPIC_FNAME_LEN];
|
||||||
|
int8_t isSchemaAdaptive;
|
||||||
|
SArray* vgs; // SArray<SMqSubVgEp>
|
||||||
|
SSchemaWrapper schema;
|
||||||
|
} SMqSubTopicEp;
|
||||||
|
|
||||||
|
static FORCE_INLINE int32_t tEncodeSMqSubTopicEp(void** buf, const SMqSubTopicEp* pTopicEp) {
|
||||||
|
int32_t tlen = 0;
|
||||||
|
tlen += taosEncodeString(buf, pTopicEp->topic);
|
||||||
|
tlen += taosEncodeFixedI8(buf, pTopicEp->isSchemaAdaptive);
|
||||||
|
int32_t sz = taosArrayGetSize(pTopicEp->vgs);
|
||||||
|
tlen += taosEncodeFixedI32(buf, sz);
|
||||||
|
for (int32_t i = 0; i < sz; i++) {
|
||||||
|
SMqSubVgEp* pVgEp = (SMqSubVgEp*)taosArrayGet(pTopicEp->vgs, i);
|
||||||
|
tlen += tEncodeSMqSubVgEp(buf, pVgEp);
|
||||||
}
|
}
|
||||||
|
tlen += taosEncodeSSchemaWrapper(buf, &pTopicEp->schema);
|
||||||
|
return tlen;
|
||||||
|
}
|
||||||
|
|
||||||
static FORCE_INLINE void* tDecodeSMqSubVgEp(void* buf, SMqSubVgEp* pVgEp) {
|
static FORCE_INLINE void* tDecodeSMqSubTopicEp(void* buf, SMqSubTopicEp* pTopicEp) {
|
||||||
buf = taosDecodeFixedI32(buf, &pVgEp->vgId);
|
buf = taosDecodeStringTo(buf, pTopicEp->topic);
|
||||||
buf = taosDecodeFixedI64(buf, &pVgEp->offset);
|
buf = taosDecodeFixedI8(buf, &pTopicEp->isSchemaAdaptive);
|
||||||
buf = taosDecodeSEpSet(buf, &pVgEp->epSet);
|
int32_t sz;
|
||||||
return buf;
|
buf = taosDecodeFixedI32(buf, &sz);
|
||||||
|
pTopicEp->vgs = taosArrayInit(sz, sizeof(SMqSubVgEp));
|
||||||
|
if (pTopicEp->vgs == NULL) {
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
for (int32_t i = 0; i < sz; i++) {
|
||||||
typedef struct {
|
SMqSubVgEp vgEp;
|
||||||
char topic[TSDB_TOPIC_FNAME_LEN];
|
buf = tDecodeSMqSubVgEp(buf, &vgEp);
|
||||||
int8_t isSchemaAdaptive;
|
taosArrayPush(pTopicEp->vgs, &vgEp);
|
||||||
SArray* vgs; // SArray<SMqSubVgEp>
|
|
||||||
SSchemaWrapper schema;
|
|
||||||
} SMqSubTopicEp;
|
|
||||||
|
|
||||||
static FORCE_INLINE int32_t tEncodeSMqSubTopicEp(void** buf, const SMqSubTopicEp* pTopicEp) {
|
|
||||||
int32_t tlen = 0;
|
|
||||||
tlen += taosEncodeString(buf, pTopicEp->topic);
|
|
||||||
tlen += taosEncodeFixedI8(buf, pTopicEp->isSchemaAdaptive);
|
|
||||||
int32_t sz = taosArrayGetSize(pTopicEp->vgs);
|
|
||||||
tlen += taosEncodeFixedI32(buf, sz);
|
|
||||||
for (int32_t i = 0; i < sz; i++) {
|
|
||||||
SMqSubVgEp* pVgEp = (SMqSubVgEp*)taosArrayGet(pTopicEp->vgs, i);
|
|
||||||
tlen += tEncodeSMqSubVgEp(buf, pVgEp);
|
|
||||||
}
|
|
||||||
tlen += taosEncodeSSchemaWrapper(buf, &pTopicEp->schema);
|
|
||||||
return tlen;
|
|
||||||
}
|
}
|
||||||
|
buf = taosDecodeSSchemaWrapper(buf, &pTopicEp->schema);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
static FORCE_INLINE void* tDecodeSMqSubTopicEp(void* buf, SMqSubTopicEp* pTopicEp) {
|
static FORCE_INLINE void tDeleteSMqSubTopicEp(SMqSubTopicEp* pSubTopicEp) {
|
||||||
buf = taosDecodeStringTo(buf, pTopicEp->topic);
|
// taosMemoryFree(pSubTopicEp->schema.pSchema);
|
||||||
buf = taosDecodeFixedI8(buf, &pTopicEp->isSchemaAdaptive);
|
taosArrayDestroy(pSubTopicEp->vgs);
|
||||||
int32_t sz;
|
}
|
||||||
buf = taosDecodeFixedI32(buf, &sz);
|
|
||||||
pTopicEp->vgs = taosArrayInit(sz, sizeof(SMqSubVgEp));
|
|
||||||
if (pTopicEp->vgs == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
for (int32_t i = 0; i < sz; i++) {
|
|
||||||
SMqSubVgEp vgEp;
|
|
||||||
buf = tDecodeSMqSubVgEp(buf, &vgEp);
|
|
||||||
taosArrayPush(pTopicEp->vgs, &vgEp);
|
|
||||||
}
|
|
||||||
buf = taosDecodeSSchemaWrapper(buf, &pTopicEp->schema);
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
static FORCE_INLINE void tDeleteSMqSubTopicEp(SMqSubTopicEp * pSubTopicEp) {
|
typedef struct {
|
||||||
// taosMemoryFree(pSubTopicEp->schema.pSchema);
|
SMqRspHead head;
|
||||||
taosArrayDestroy(pSubTopicEp->vgs);
|
int64_t reqOffset;
|
||||||
}
|
int64_t rspOffset;
|
||||||
|
int32_t skipLogNum;
|
||||||
|
int32_t blockNum;
|
||||||
|
int8_t withTbName;
|
||||||
|
int8_t withSchema;
|
||||||
|
int8_t withTag;
|
||||||
|
SArray* blockDataLen; // SArray<int32_t>
|
||||||
|
SArray* blockData; // SArray<SRetrieveTableRsp*>
|
||||||
|
SArray* blockTbName; // SArray<char*>
|
||||||
|
SArray* blockSchema; // SArray<SSchemaWrapper>
|
||||||
|
SArray* blockTags; // SArray<kvrow>
|
||||||
|
SArray* blockTagSchema; // SArray<kvrow>
|
||||||
|
} SMqDataBlkRsp;
|
||||||
|
|
||||||
typedef struct {
|
static FORCE_INLINE int32_t tEncodeSMqDataBlkRsp(void** buf, const SMqDataBlkRsp* pRsp) {
|
||||||
SMqRspHead head;
|
int32_t tlen = 0;
|
||||||
int64_t reqOffset;
|
tlen += taosEncodeFixedI64(buf, pRsp->reqOffset);
|
||||||
int64_t rspOffset;
|
tlen += taosEncodeFixedI64(buf, pRsp->rspOffset);
|
||||||
int32_t skipLogNum;
|
tlen += taosEncodeFixedI32(buf, pRsp->skipLogNum);
|
||||||
int32_t blockNum;
|
tlen += taosEncodeFixedI32(buf, pRsp->blockNum);
|
||||||
int8_t withTbName;
|
if (pRsp->blockNum != 0) {
|
||||||
int8_t withSchema;
|
tlen += taosEncodeFixedI8(buf, pRsp->withTbName);
|
||||||
int8_t withTag;
|
tlen += taosEncodeFixedI8(buf, pRsp->withSchema);
|
||||||
SArray* blockDataLen; // SArray<int32_t>
|
tlen += taosEncodeFixedI8(buf, pRsp->withTag);
|
||||||
SArray* blockData; // SArray<SRetrieveTableRsp*>
|
|
||||||
SArray* blockTbName; // SArray<char*>
|
|
||||||
SArray* blockSchema; // SArray<SSchemaWrapper>
|
|
||||||
SArray* blockTags; // SArray<kvrow>
|
|
||||||
SArray* blockTagSchema; // SArray<kvrow>
|
|
||||||
} SMqDataBlkRsp;
|
|
||||||
|
|
||||||
static FORCE_INLINE int32_t tEncodeSMqDataBlkRsp(void** buf, const SMqDataBlkRsp* pRsp) {
|
for (int32_t i = 0; i < pRsp->blockNum; i++) {
|
||||||
int32_t tlen = 0;
|
int32_t bLen = *(int32_t*)taosArrayGet(pRsp->blockDataLen, i);
|
||||||
tlen += taosEncodeFixedI64(buf, pRsp->reqOffset);
|
void* data = taosArrayGetP(pRsp->blockData, i);
|
||||||
tlen += taosEncodeFixedI64(buf, pRsp->rspOffset);
|
tlen += taosEncodeFixedI32(buf, bLen);
|
||||||
tlen += taosEncodeFixedI32(buf, pRsp->skipLogNum);
|
tlen += taosEncodeBinary(buf, data, bLen);
|
||||||
tlen += taosEncodeFixedI32(buf, pRsp->blockNum);
|
if (pRsp->withSchema) {
|
||||||
if (pRsp->blockNum != 0) {
|
SSchemaWrapper* pSW = (SSchemaWrapper*)taosArrayGetP(pRsp->blockSchema, i);
|
||||||
tlen += taosEncodeFixedI8(buf, pRsp->withTbName);
|
tlen += taosEncodeSSchemaWrapper(buf, pSW);
|
||||||
tlen += taosEncodeFixedI8(buf, pRsp->withSchema);
|
}
|
||||||
tlen += taosEncodeFixedI8(buf, pRsp->withTag);
|
if (pRsp->withTbName) {
|
||||||
|
char* tbName = (char*)taosArrayGetP(pRsp->blockTbName, i);
|
||||||
for (int32_t i = 0; i < pRsp->blockNum; i++) {
|
tlen += taosEncodeString(buf, tbName);
|
||||||
int32_t bLen = *(int32_t*)taosArrayGet(pRsp->blockDataLen, i);
|
|
||||||
void* data = taosArrayGetP(pRsp->blockData, i);
|
|
||||||
tlen += taosEncodeFixedI32(buf, bLen);
|
|
||||||
tlen += taosEncodeBinary(buf, data, bLen);
|
|
||||||
if (pRsp->withSchema) {
|
|
||||||
SSchemaWrapper* pSW = (SSchemaWrapper*)taosArrayGetP(pRsp->blockSchema, i);
|
|
||||||
tlen += taosEncodeSSchemaWrapper(buf, pSW);
|
|
||||||
}
|
|
||||||
if (pRsp->withTbName) {
|
|
||||||
char* tbName = (char*)taosArrayGetP(pRsp->blockTbName, i);
|
|
||||||
tlen += taosEncodeString(buf, tbName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return tlen;
|
|
||||||
}
|
}
|
||||||
|
return tlen;
|
||||||
|
}
|
||||||
|
|
||||||
static FORCE_INLINE void* tDecodeSMqDataBlkRsp(const void* buf, SMqDataBlkRsp* pRsp) {
|
static FORCE_INLINE void* tDecodeSMqDataBlkRsp(const void* buf, SMqDataBlkRsp* pRsp) {
|
||||||
buf = taosDecodeFixedI64(buf, &pRsp->reqOffset);
|
buf = taosDecodeFixedI64(buf, &pRsp->reqOffset);
|
||||||
buf = taosDecodeFixedI64(buf, &pRsp->rspOffset);
|
buf = taosDecodeFixedI64(buf, &pRsp->rspOffset);
|
||||||
buf = taosDecodeFixedI32(buf, &pRsp->skipLogNum);
|
buf = taosDecodeFixedI32(buf, &pRsp->skipLogNum);
|
||||||
buf = taosDecodeFixedI32(buf, &pRsp->blockNum);
|
buf = taosDecodeFixedI32(buf, &pRsp->blockNum);
|
||||||
pRsp->blockData = taosArrayInit(pRsp->blockNum, sizeof(void*));
|
pRsp->blockData = taosArrayInit(pRsp->blockNum, sizeof(void*));
|
||||||
pRsp->blockDataLen = taosArrayInit(pRsp->blockNum, sizeof(void*));
|
pRsp->blockDataLen = taosArrayInit(pRsp->blockNum, sizeof(void*));
|
||||||
pRsp->blockTbName = taosArrayInit(pRsp->blockNum, sizeof(void*));
|
pRsp->blockTbName = taosArrayInit(pRsp->blockNum, sizeof(void*));
|
||||||
pRsp->blockSchema = taosArrayInit(pRsp->blockNum, sizeof(void*));
|
pRsp->blockSchema = taosArrayInit(pRsp->blockNum, sizeof(void*));
|
||||||
if (pRsp->blockNum != 0) {
|
if (pRsp->blockNum != 0) {
|
||||||
buf = taosDecodeFixedI8(buf, &pRsp->withTbName);
|
buf = taosDecodeFixedI8(buf, &pRsp->withTbName);
|
||||||
buf = taosDecodeFixedI8(buf, &pRsp->withSchema);
|
buf = taosDecodeFixedI8(buf, &pRsp->withSchema);
|
||||||
buf = taosDecodeFixedI8(buf, &pRsp->withTag);
|
buf = taosDecodeFixedI8(buf, &pRsp->withTag);
|
||||||
|
|
||||||
for (int32_t i = 0; i < pRsp->blockNum; i++) {
|
for (int32_t i = 0; i < pRsp->blockNum; i++) {
|
||||||
int32_t bLen = 0;
|
int32_t bLen = 0;
|
||||||
void* data = NULL;
|
void* data = NULL;
|
||||||
buf = taosDecodeFixedI32(buf, &bLen);
|
buf = taosDecodeFixedI32(buf, &bLen);
|
||||||
buf = taosDecodeBinary(buf, &data, bLen);
|
buf = taosDecodeBinary(buf, &data, bLen);
|
||||||
taosArrayPush(pRsp->blockDataLen, &bLen);
|
taosArrayPush(pRsp->blockDataLen, &bLen);
|
||||||
taosArrayPush(pRsp->blockData, &data);
|
taosArrayPush(pRsp->blockData, &data);
|
||||||
if (pRsp->withSchema) {
|
if (pRsp->withSchema) {
|
||||||
SSchemaWrapper* pSW = (SSchemaWrapper*)taosMemoryMalloc(sizeof(SSchemaWrapper));
|
SSchemaWrapper* pSW = (SSchemaWrapper*)taosMemoryMalloc(sizeof(SSchemaWrapper));
|
||||||
buf = taosDecodeSSchemaWrapper(buf, pSW);
|
buf = taosDecodeSSchemaWrapper(buf, pSW);
|
||||||
taosArrayPush(pRsp->blockSchema, &pSW);
|
taosArrayPush(pRsp->blockSchema, &pSW);
|
||||||
}
|
}
|
||||||
if (pRsp->withTbName) {
|
if (pRsp->withTbName) {
|
||||||
char* name = NULL;
|
char* name = NULL;
|
||||||
buf = taosDecodeString(buf, &name);
|
buf = taosDecodeString(buf, &name);
|
||||||
taosArrayPush(pRsp->blockTbName, &name);
|
taosArrayPush(pRsp->blockTbName, &name);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (void*)buf;
|
|
||||||
}
|
}
|
||||||
|
return (void*)buf;
|
||||||
|
}
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
SMqRspHead head;
|
SMqRspHead head;
|
||||||
char cgroup[TSDB_CGROUP_LEN];
|
char cgroup[TSDB_CGROUP_LEN];
|
||||||
SArray* topics; // SArray<SMqSubTopicEp>
|
SArray* topics; // SArray<SMqSubTopicEp>
|
||||||
} SMqAskEpRsp;
|
} SMqAskEpRsp;
|
||||||
|
|
||||||
static FORCE_INLINE int32_t tEncodeSMqAskEpRsp(void** buf, const SMqAskEpRsp* pRsp) {
|
static FORCE_INLINE int32_t tEncodeSMqAskEpRsp(void** buf, const SMqAskEpRsp* pRsp) {
|
||||||
int32_t tlen = 0;
|
int32_t tlen = 0;
|
||||||
// tlen += taosEncodeString(buf, pRsp->cgroup);
|
// tlen += taosEncodeString(buf, pRsp->cgroup);
|
||||||
int32_t sz = taosArrayGetSize(pRsp->topics);
|
int32_t sz = taosArrayGetSize(pRsp->topics);
|
||||||
tlen += taosEncodeFixedI32(buf, sz);
|
tlen += taosEncodeFixedI32(buf, sz);
|
||||||
for (int32_t i = 0; i < sz; i++) {
|
for (int32_t i = 0; i < sz; i++) {
|
||||||
SMqSubTopicEp* pVgEp = (SMqSubTopicEp*)taosArrayGet(pRsp->topics, i);
|
SMqSubTopicEp* pVgEp = (SMqSubTopicEp*)taosArrayGet(pRsp->topics, i);
|
||||||
tlen += tEncodeSMqSubTopicEp(buf, pVgEp);
|
tlen += tEncodeSMqSubTopicEp(buf, pVgEp);
|
||||||
}
|
|
||||||
return tlen;
|
|
||||||
}
|
}
|
||||||
|
return tlen;
|
||||||
|
}
|
||||||
|
|
||||||
static FORCE_INLINE void* tDecodeSMqAskEpRsp(void* buf, SMqAskEpRsp* pRsp) {
|
static FORCE_INLINE void* tDecodeSMqAskEpRsp(void* buf, SMqAskEpRsp* pRsp) {
|
||||||
// buf = taosDecodeStringTo(buf, pRsp->cgroup);
|
// buf = taosDecodeStringTo(buf, pRsp->cgroup);
|
||||||
int32_t sz;
|
int32_t sz;
|
||||||
buf = taosDecodeFixedI32(buf, &sz);
|
buf = taosDecodeFixedI32(buf, &sz);
|
||||||
pRsp->topics = taosArrayInit(sz, sizeof(SMqSubTopicEp));
|
pRsp->topics = taosArrayInit(sz, sizeof(SMqSubTopicEp));
|
||||||
if (pRsp->topics == NULL) {
|
if (pRsp->topics == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
|
||||||
for (int32_t i = 0; i < sz; i++) {
|
|
||||||
SMqSubTopicEp topicEp;
|
|
||||||
buf = tDecodeSMqSubTopicEp(buf, &topicEp);
|
|
||||||
taosArrayPush(pRsp->topics, &topicEp);
|
|
||||||
}
|
|
||||||
return buf;
|
|
||||||
}
|
}
|
||||||
|
for (int32_t i = 0; i < sz; i++) {
|
||||||
|
SMqSubTopicEp topicEp;
|
||||||
|
buf = tDecodeSMqSubTopicEp(buf, &topicEp);
|
||||||
|
taosArrayPush(pRsp->topics, &topicEp);
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
static FORCE_INLINE void tDeleteSMqAskEpRsp(SMqAskEpRsp * pRsp) {
|
static FORCE_INLINE void tDeleteSMqAskEpRsp(SMqAskEpRsp* pRsp) {
|
||||||
taosArrayDestroyEx(pRsp->topics, (void (*)(void*))tDeleteSMqSubTopicEp);
|
taosArrayDestroyEx(pRsp->topics, (void (*)(void*))tDeleteSMqSubTopicEp);
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
void* data;
|
void* data;
|
||||||
|
|
Loading…
Reference in New Issue