mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-28 08:07:31 -04:00
added new GrpServerConfigMap to store additional data on groups for net service. Removed pointers to simplify the code
This commit is contained in:
parent
143829c881
commit
5612647672
4 changed files with 209 additions and 280 deletions
|
@ -29,13 +29,13 @@
|
|||
void RsGxsGrpUpdateItem::clear()
|
||||
{
|
||||
grpUpdateTS = 0;
|
||||
peerId.clear();
|
||||
peerID.clear();
|
||||
}
|
||||
std::ostream& RsGxsGrpUpdateItem::print(std::ostream& out, uint16_t indent)
|
||||
{
|
||||
printRsItemBase(out, "RsGxsGrpUpdateItem", indent);
|
||||
uint16_t int_Indent = indent + 2;
|
||||
out << "peerId: " << peerId << std::endl;
|
||||
out << "peerId: " << peerID << std::endl;
|
||||
printIndent(out, int_Indent);
|
||||
out << "grpUpdateTS: " << grpUpdateTS << std::endl;
|
||||
printIndent(out, int_Indent);
|
||||
|
@ -47,7 +47,7 @@ std::ostream& RsGxsGrpUpdateItem::print(std::ostream& out, uint16_t indent)
|
|||
void RsGxsMsgUpdateItem::clear()
|
||||
{
|
||||
msgUpdateInfos.clear();
|
||||
peerId.clear();
|
||||
peerID.clear();
|
||||
}
|
||||
|
||||
std::ostream& RsGxsMsgUpdateItem::print(std::ostream& out, uint16_t indent)
|
||||
|
@ -209,7 +209,7 @@ RsItem* RsGxsUpdateSerialiser::deserialise(void* data, uint32_t* size)
|
|||
uint32_t RsGxsUpdateSerialiser::sizeGxsGrpUpdate(RsGxsGrpUpdateItem* item)
|
||||
{
|
||||
uint32_t s = 8; // header size
|
||||
s += item->peerId.serial_size();
|
||||
s += item->peerID.serial_size();
|
||||
s += 4; // mUpdateTS
|
||||
return s;
|
||||
}
|
||||
|
@ -250,7 +250,7 @@ bool RsGxsUpdateSerialiser::serialiseGxsGrpUpdate(RsGxsGrpUpdateItem* item,
|
|||
/* RsGxsGrpUpdateItem */
|
||||
|
||||
|
||||
ok &= item->peerId.serialise(data, *size, offset) ;
|
||||
ok &= item->peerID.serialise(data, *size, offset) ;
|
||||
ok &= setRawUInt32(data, *size, &offset, item->grpUpdateTS);
|
||||
|
||||
if(offset != tlvsize){
|
||||
|
@ -356,7 +356,7 @@ RsGxsGrpUpdateItem* RsGxsUpdateSerialiser::deserialGxsGrpUpddate(void* data, uin
|
|||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
ok &= item->peerId.deserialise(data, *size, offset) ;
|
||||
ok &= item->peerID.deserialise(data, *size, offset) ;
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->grpUpdateTS));
|
||||
|
||||
if (offset != rssize)
|
||||
|
@ -449,7 +449,7 @@ RsGxsServerGrpUpdateItem* RsGxsUpdateSerialiser::deserialGxsServerGrpUpddate(voi
|
|||
uint32_t RsGxsUpdateSerialiser::sizeGxsMsgUpdate(RsGxsMsgUpdateItem* item)
|
||||
{
|
||||
uint32_t s = 8; // header size
|
||||
s += item->peerId.serial_size() ;//GetTlvStringSize(item->peerId);
|
||||
s += item->peerID.serial_size() ;//GetTlvStringSize(item->peerId);
|
||||
|
||||
s += item->msgUpdateInfos.size() * (4 + 4 + RsGxsGroupId::serial_size());
|
||||
s += 4; // number of map items
|
||||
|
@ -495,7 +495,7 @@ bool RsGxsUpdateSerialiser::serialiseGxsMsgUpdate(RsGxsMsgUpdateItem* item,
|
|||
/* RsGxsMsgUpdateItem */
|
||||
|
||||
|
||||
ok &= item->peerId.serialise(data, *size, offset) ;
|
||||
ok &= item->peerID.serialise(data, *size, offset) ;
|
||||
|
||||
std::map<RsGxsGroupId, RsGxsMsgUpdateItem::MsgUpdateInfo>::const_iterator cit(item->msgUpdateInfos.begin());
|
||||
|
||||
|
@ -616,7 +616,7 @@ RsGxsMsgUpdateItem* RsGxsUpdateSerialiser::deserialGxsMsgUpdate(void* data,
|
|||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
ok &= item->peerId.deserialise(data, *size, offset) ;
|
||||
ok &= item->peerID.deserialise(data, *size, offset) ;
|
||||
uint32_t numUpdateItems;
|
||||
ok &= getRawUInt32(data, *size, &offset, &(numUpdateItems));
|
||||
std::map<RsGxsGroupId, RsGxsMsgUpdateItem::MsgUpdateInfo>& msgUpdateInfos = item->msgUpdateInfos;
|
||||
|
|
|
@ -49,94 +49,127 @@ const uint8_t RS_PKT_SUBTYPE_GXS_SERVER_GRP_UPDATE = 0x04;
|
|||
const uint8_t RS_PKT_SUBTYPE_GXS_SERVER_MSG_UPDATE = 0x08;
|
||||
const uint8_t RS_PKT_SUBTYPE_GXS_GRP_CONFIG = 0x09;
|
||||
|
||||
class RsGxsGrpConfigItem : public RsItem {
|
||||
class RsGxsGrpConfig
|
||||
{
|
||||
public:
|
||||
RsGxsGrpConfigItem(uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE, servType, RS_PKT_SUBTYPE_GXS_GRP_CONFIG)
|
||||
{
|
||||
msg_keep_delay = RS_GXS_DEFAULT_MSG_STORE_PERIOD ;
|
||||
msg_send_delay = RS_GXS_DEFAULT_MSG_SEND_PERIOD ;
|
||||
msg_req_delay = RS_GXS_DEFAULT_MSG_REQ_PERIOD ;
|
||||
RsGxsGrpConfig()
|
||||
{
|
||||
msg_keep_delay = RS_GXS_DEFAULT_MSG_STORE_PERIOD ;
|
||||
msg_send_delay = RS_GXS_DEFAULT_MSG_SEND_PERIOD ;
|
||||
msg_req_delay = RS_GXS_DEFAULT_MSG_REQ_PERIOD ;
|
||||
|
||||
max_visible_count = 0 ;
|
||||
update_TS = 0 ;
|
||||
}
|
||||
max_visible_count = 0 ;
|
||||
update_TS = 0 ;
|
||||
}
|
||||
|
||||
RsGxsGroupId grpId ;
|
||||
uint32_t msg_keep_delay ; // delay after which we discard the posts
|
||||
uint32_t msg_send_delay ; // delay after which we dont send the posts anymore
|
||||
uint32_t msg_req_delay ; // delay after which we dont get the posts from friends
|
||||
|
||||
RsTlvPeerIdSet suppliers; // list of friends who feed this group
|
||||
uint32_t max_visible_count ; // max visible count reported by contributing friends
|
||||
time_t update_TS ; // last time the max visible count was updated.
|
||||
};
|
||||
|
||||
class RsGxsGrpConfigItem : public RsItem, public RsGxsGrpConfig
|
||||
{
|
||||
public:
|
||||
RsGxsGrpConfigItem(uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE, servType, RS_PKT_SUBTYPE_GXS_GRP_CONFIG) {}
|
||||
RsGxsGrpConfigItem(const RsGxsGrpConfig& m,uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE, servType, RS_PKT_SUBTYPE_GXS_GRP_CONFIG),RsGxsGrpConfig(m) {}
|
||||
virtual ~RsGxsGrpConfigItem() {}
|
||||
|
||||
virtual void clear() {}
|
||||
virtual std::ostream &print(std::ostream &out, uint16_t indent) { return out;}
|
||||
|
||||
RsGxsGroupId grpId ;
|
||||
uint32_t msg_keep_delay ; // delay after which we discard the posts
|
||||
uint32_t msg_send_delay ; // delay after which we dont send the posts anymore
|
||||
uint32_t msg_req_delay ; // delay after which we dont get the posts from friends
|
||||
|
||||
RsTlvPeerIdSet suppliers; // list of friends who feed this group
|
||||
uint32_t max_visible_count ; // max visible count reported by contributing friends
|
||||
time_t update_TS ; // last time the max visible count was updated.
|
||||
};
|
||||
|
||||
class RsGxsGrpUpdateItem : public RsItem {
|
||||
class RsGxsGrpUpdate
|
||||
{
|
||||
public:
|
||||
RsGxsGrpUpdateItem(uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE, servType,
|
||||
RS_PKT_SUBTYPE_GXS_GRP_UPDATE)
|
||||
{clear();}
|
||||
RsGxsGrpUpdate() { grpUpdateTS=0;}
|
||||
|
||||
RsPeerId peerID;
|
||||
uint32_t grpUpdateTS;
|
||||
};
|
||||
|
||||
class RsGxsGrpUpdateItem : public RsItem, public RsGxsGrpUpdate
|
||||
{
|
||||
public:
|
||||
RsGxsGrpUpdateItem(uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE, servType, RS_PKT_SUBTYPE_GXS_GRP_UPDATE) {clear();}
|
||||
RsGxsGrpUpdateItem(const RsGxsGrpUpdate& u,uint16_t serv_type) : RsGxsGrpUpdate(u),RsItem(RS_PKT_VERSION_SERVICE, serv_type, RS_PKT_SUBTYPE_GXS_GRP_UPDATE) {clear();}
|
||||
|
||||
virtual ~RsGxsGrpUpdateItem() {}
|
||||
|
||||
virtual void clear();
|
||||
virtual std::ostream &print(std::ostream &out, uint16_t indent);
|
||||
|
||||
RsPeerId peerId;
|
||||
uint32_t grpUpdateTS;
|
||||
};
|
||||
|
||||
class RsGxsServerGrpUpdateItem : public RsItem {
|
||||
class RsGxsServerGrpUpdate
|
||||
{
|
||||
public:
|
||||
RsGxsServerGrpUpdateItem(uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE, servType,
|
||||
RS_PKT_SUBTYPE_GXS_SERVER_GRP_UPDATE)
|
||||
{ clear();}
|
||||
RsGxsServerGrpUpdate() { grpUpdateTS = 0 ; }
|
||||
|
||||
uint32_t grpUpdateTS;
|
||||
};
|
||||
|
||||
class RsGxsServerGrpUpdateItem : public RsItem, public RsGxsServerGrpUpdate
|
||||
{
|
||||
public:
|
||||
RsGxsServerGrpUpdateItem(uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE, servType, RS_PKT_SUBTYPE_GXS_SERVER_GRP_UPDATE) { clear();}
|
||||
RsGxsServerGrpUpdateItem(const RsGxsServerGrpUpdate& u,uint16_t serv_type) : RsGxsServerGrpUpdate(u),RsItem(RS_PKT_VERSION_SERVICE, serv_type, RS_PKT_SUBTYPE_GXS_SERVER_GRP_UPDATE) {clear();}
|
||||
|
||||
virtual ~RsGxsServerGrpUpdateItem() {}
|
||||
|
||||
virtual void clear();
|
||||
virtual std::ostream &print(std::ostream &out, uint16_t indent);
|
||||
|
||||
uint32_t grpUpdateTS;
|
||||
};
|
||||
|
||||
class RsGxsMsgUpdateItem : public RsItem
|
||||
class RsGxsMsgUpdate
|
||||
{
|
||||
public:
|
||||
RsGxsMsgUpdateItem(uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE, servType, RS_PKT_SUBTYPE_GXS_MSG_UPDATE)
|
||||
{ clear();}
|
||||
virtual ~RsGxsMsgUpdateItem() {}
|
||||
|
||||
virtual void clear();
|
||||
virtual std::ostream &print(std::ostream &out, uint16_t indent);
|
||||
|
||||
struct MsgUpdateInfo
|
||||
{
|
||||
MsgUpdateInfo(): time_stamp(0), message_count(0) {}
|
||||
|
||||
|
||||
uint32_t time_stamp ;
|
||||
uint32_t message_count ;
|
||||
};
|
||||
|
||||
RsPeerId peerId;
|
||||
RsPeerId peerID;
|
||||
std::map<RsGxsGroupId, MsgUpdateInfo> msgUpdateInfos;
|
||||
};
|
||||
|
||||
class RsGxsServerMsgUpdateItem : public RsItem
|
||||
class RsGxsMsgUpdateItem : public RsItem, public RsGxsMsgUpdate
|
||||
{
|
||||
public:
|
||||
RsGxsServerMsgUpdateItem(uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE,
|
||||
servType, RS_PKT_SUBTYPE_GXS_SERVER_MSG_UPDATE)
|
||||
{ clear();}
|
||||
RsGxsMsgUpdateItem(uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE, servType, RS_PKT_SUBTYPE_GXS_MSG_UPDATE) { clear();}
|
||||
RsGxsMsgUpdateItem(const RsGxsMsgUpdate& m,uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE, servType, RS_PKT_SUBTYPE_GXS_MSG_UPDATE), RsGxsMsgUpdate(m) { clear();}
|
||||
|
||||
virtual ~RsGxsMsgUpdateItem() {}
|
||||
|
||||
virtual void clear();
|
||||
virtual std::ostream &print(std::ostream &out, uint16_t indent);
|
||||
};
|
||||
|
||||
class RsGxsServerMsgUpdate
|
||||
{
|
||||
public:
|
||||
RsGxsServerMsgUpdate() { msgUpdateTS = 0 ;}
|
||||
|
||||
RsGxsGroupId grpId;
|
||||
uint32_t msgUpdateTS; // local time stamp this group last received a new msg
|
||||
};
|
||||
|
||||
class RsGxsServerMsgUpdateItem : public RsItem, public RsGxsServerMsgUpdate
|
||||
{
|
||||
public:
|
||||
RsGxsServerMsgUpdateItem(uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE, servType, RS_PKT_SUBTYPE_GXS_SERVER_MSG_UPDATE) { clear();}
|
||||
RsGxsServerMsgUpdateItem(const RsGxsServerMsgUpdate& m,uint16_t servType) : RsItem(RS_PKT_VERSION_SERVICE, servType, RS_PKT_SUBTYPE_GXS_SERVER_MSG_UPDATE),RsGxsServerMsgUpdate(m) { clear();}
|
||||
virtual ~RsGxsServerMsgUpdateItem() {}
|
||||
|
||||
virtual void clear();
|
||||
virtual std::ostream &print(std::ostream &out, uint16_t indent);
|
||||
|
||||
RsGxsGroupId grpId;
|
||||
uint32_t msgUpdateTS; // local time stamp this group last received a new msg
|
||||
virtual void clear();
|
||||
virtual std::ostream &print(std::ostream &out, uint16_t indent);
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue