Fixed compile of FeedReader plugin

This commit is contained in:
thunder2 2020-11-08 13:22:59 +01:00
parent e88dfecc55
commit 026cadfe13
23 changed files with 366 additions and 345 deletions

View file

@ -33,8 +33,8 @@ RsFeedReaderFeed::RsFeedReaderFeed()
void RsFeedReaderFeed::clear()
{
feedId.clear();
parentId.clear();
feedId = 0;
parentId = 0;
name.clear();
url.clear();
user.clear();
@ -64,8 +64,8 @@ uint32_t RsFeedReaderSerialiser::sizeFeed(RsFeedReaderFeed *item)
{
uint32_t s = 8; /* header */
s += 2; /* version */
s += GetTlvStringSize(item->feedId);
s += GetTlvStringSize(item->parentId);
s += sizeof(uint32_t);
s += sizeof(uint32_t);
s += GetTlvStringSize(item->url);
s += GetTlvStringSize(item->name);
s += GetTlvStringSize(item->description);
@ -108,9 +108,9 @@ bool RsFeedReaderSerialiser::serialiseFeed(RsFeedReaderFeed *item, void *data, u
offset += 8;
/* add values */
ok &= setRawUInt16(data, tlvsize, &offset, 1); /* version */
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_GENID, item->feedId);
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_VALUE, item->parentId);
ok &= setRawUInt16(data, tlvsize, &offset, 2); /* version */
ok &= setRawUInt32(data, tlvsize, &offset, item->feedId);
ok &= setRawUInt32(data, tlvsize, &offset, item->parentId);
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_LINK, item->url);
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_NAME, item->name);
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_COMMENT, item->description);
@ -173,8 +173,28 @@ RsFeedReaderFeed *RsFeedReaderSerialiser::deserialiseFeed(void *data, uint32_t *
/* get values */
uint16_t version = 0;
ok &= getRawUInt16(data, rssize, &offset, &version);
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_GENID, item->feedId);
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_VALUE, item->parentId);
if (version >= 2) {
ok &= getRawUInt32(data, rssize, &offset, &item->feedId);
ok &= getRawUInt32(data, rssize, &offset, &item->parentId);
} else {
std::string feedId;
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_GENID, feedId);
std::string parentId;
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_VALUE, parentId);
if (ok) {
if (sscanf(feedId.c_str(), "%u", &item->feedId) != 1) {
ok = false;
}
if (!parentId.empty()) {
if (sscanf(parentId.c_str(), "%u", &item->parentId) != 1) {
ok = false;
}
} else {
item->parentId = 0;
}
}
}
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_LINK, item->url);
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_NAME, item->name);
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_COMMENT, item->description);
@ -240,7 +260,7 @@ RsFeedReaderMsg::RsFeedReaderMsg() : RsItem(RS_PKT_VERSION_SERVICE, RS_SERVICE_T
void RsFeedReaderMsg::clear()
{
msgId.clear();
feedId.clear();
feedId = 0;
title.clear();
link.clear();
author.clear();
@ -260,7 +280,7 @@ uint32_t RsFeedReaderSerialiser::sizeMsg(RsFeedReaderMsg *item)
uint32_t s = 8; /* header */
s += 2; /* version */
s += GetTlvStringSize(item->msgId);
s += GetTlvStringSize(item->feedId);
s += sizeof(uint32_t);
s += GetTlvStringSize(item->title);
s += GetTlvStringSize(item->link);
s += GetTlvStringSize(item->author);
@ -291,9 +311,9 @@ bool RsFeedReaderSerialiser::serialiseMsg(RsFeedReaderMsg *item, void *data, uin
offset += 8;
/* add values */
ok &= setRawUInt16(data, tlvsize, &offset, 1); /* version */
ok &= setRawUInt16(data, tlvsize, &offset, 2); /* version */
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_GENID, item->msgId);
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_VALUE, item->feedId);
ok &= setRawUInt32(data, tlvsize, &offset, item->feedId);
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_NAME, item->title);
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_LINK, item->link);
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_VALUE, item->author);
@ -345,7 +365,16 @@ RsFeedReaderMsg *RsFeedReaderSerialiser::deserialiseMsg(void *data, uint32_t *pk
uint16_t version = 0;
ok &= getRawUInt16(data, rssize, &offset, &version);
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_GENID, item->msgId);
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_VALUE, item->feedId);
if (version >= 2) {
ok &= getRawUInt32(data, rssize, &offset, &item->feedId);
} else {
std::string feedId;
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_VALUE, feedId);
if (sscanf(feedId.c_str(), "%u", &item->feedId) != 1) {
ok = false;
}
}
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_NAME, item->title);
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_LINK, item->link);
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_VALUE, item->author);