serialiser updates for distrib config saving

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3315 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
chrisparker126 2010-07-26 22:17:33 +00:00
parent e40c469aa4
commit 8b3af9143f
5 changed files with 559 additions and 69 deletions

View file

@ -35,8 +35,9 @@
#include "serialiser/rsdistribitems.h"
const uint8_t RS_PKT_SUBTYPE_FORUM_GRP = 0x01;
const uint8_t RS_PKT_SUBTYPE_FORUM_MSG = 0x02;
const uint8_t RS_PKT_SUBTYPE_FORUM_GRP = 0x01;
const uint8_t RS_PKT_SUBTYPE_FORUM_MSG = 0x02;
const uint8_t RS_PKT_SUBTYPE_FORUM_READ_STATUS = 0x03;
/**************************************************************************/
@ -62,6 +63,27 @@ virtual std::ostream& print(std::ostream &out, uint16_t indent = 0);
};
/*!
* This is used to keep track of whether a message has been read
* by client
*/
class RsForumReadStatus : public RsDistribChildConfig
{
public:
RsForumReadStatus()
: RsDistribChildConfig(RS_SERVICE_TYPE_FORUM, RS_PKT_SUBTYPE_FORUM_READ_STATUS)
{ return; }
virtual void clear();
virtual std::ostream& print(std::ostream &out, uint16_t indent);
std::string forumId;
/// a map which contains the read for messages within a forum
std::map<std::string, uint32_t> msgReadStatus;
};
class RsForumSerialiser: public RsSerialType
{
public:
@ -87,6 +109,10 @@ virtual uint32_t sizeMsg(RsForumMsg *);
virtual bool serialiseMsg(RsForumMsg *item, void *data, uint32_t *size);
virtual RsForumMsg *deserialiseMsg(void *data, uint32_t *size);
virtual uint32_t sizeReadStatus(RsForumReadStatus* );
virtual bool serialiseReadStatus(RsForumReadStatus* item, void* data, uint32_t *size);
virtual RsForumReadStatus *deserialiseReadStatus(void* data, uint32_t *size);
};
/**************************************************************************/