mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-19 11:54:22 -04:00
switch Channel items to new serialization
This commit is contained in:
parent
77c2e6da8c
commit
69729ad7d2
3 changed files with 74 additions and 52 deletions
|
@ -72,7 +72,7 @@ public:
|
||||||
RsGxsCommentSerialiser(uint16_t service_type) :RsServiceSerializer(service_type) {}
|
RsGxsCommentSerialiser(uint16_t service_type) :RsServiceSerializer(service_type) {}
|
||||||
virtual ~RsGxsCommentSerialiser() {}
|
virtual ~RsGxsCommentSerialiser() {}
|
||||||
|
|
||||||
RsItem *create_item(uint16_t service_id,uint8_t item_subtype) const ;
|
virtual RsItem *create_item(uint16_t service_id,uint8_t item_subtype) const ;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* RS_GXS_COMMENT_ITEMS_H */
|
#endif /* RS_GXS_COMMENT_ITEMS_H */
|
||||||
|
|
|
@ -29,9 +29,25 @@
|
||||||
#include "serialiser/rstlvbase.h"
|
#include "serialiser/rstlvbase.h"
|
||||||
#include "serialiser/rsbaseserial.h"
|
#include "serialiser/rsbaseserial.h"
|
||||||
|
|
||||||
|
#include "serialization/rstypeserializer.h"
|
||||||
|
|
||||||
//#define GXSCHANNEL_DEBUG 1
|
//#define GXSCHANNEL_DEBUG 1
|
||||||
|
|
||||||
|
RsItem *RsGxsChannelSerialiser::create_item(uint16_t service_id,uint8_t item_subtype) const
|
||||||
|
{
|
||||||
|
if(service_id != RS_SERVICE_GXS_TYPE_CHANNELS)
|
||||||
|
return NULL ;
|
||||||
|
|
||||||
|
switch(item_subtype)
|
||||||
|
{
|
||||||
|
case RS_PKT_SUBTYPE_GXSCHANNEL_GROUP_ITEM: return new RsGxsChannelGroupItem() ;
|
||||||
|
case RS_PKT_SUBTYPE_GXSCHANNEL_POST_ITEM: return new RsGxsChannelPostItem();
|
||||||
|
default:
|
||||||
|
return RsGxsCommentSerialiser::create_item(service_id,item_subtype) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef TO_REMOVE
|
||||||
uint32_t RsGxsChannelSerialiser::size(RsItem *item)
|
uint32_t RsGxsChannelSerialiser::size(RsItem *item)
|
||||||
{
|
{
|
||||||
#ifdef GXSCHANNEL_DEBUG
|
#ifdef GXSCHANNEL_DEBUG
|
||||||
|
@ -113,19 +129,6 @@ RsItem* RsGxsChannelSerialiser::deserialise(void* data, uint32_t* size)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************************/
|
|
||||||
/*****************************************************************************************/
|
|
||||||
/*****************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
void RsGxsChannelGroupItem::clear()
|
|
||||||
{
|
|
||||||
mDescription.clear();
|
|
||||||
mImage.TlvClear();
|
|
||||||
}
|
|
||||||
|
|
||||||
std::ostream& RsGxsChannelGroupItem::print(std::ostream& out, uint16_t indent)
|
std::ostream& RsGxsChannelGroupItem::print(std::ostream& out, uint16_t indent)
|
||||||
{
|
{
|
||||||
printRsItemBase(out, "RsGxsChannelGroupItem", indent);
|
printRsItemBase(out, "RsGxsChannelGroupItem", indent);
|
||||||
|
@ -141,6 +144,19 @@ std::ostream& RsGxsChannelGroupItem::print(std::ostream& out, uint16_t indent)
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*****************************************************************************************/
|
||||||
|
/*****************************************************************************************/
|
||||||
|
/*****************************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
void RsGxsChannelGroupItem::clear()
|
||||||
|
{
|
||||||
|
mDescription.clear();
|
||||||
|
mImage.TlvClear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool RsGxsChannelGroupItem::fromChannelGroup(RsGxsChannelGroup &group, bool moveImage)
|
bool RsGxsChannelGroupItem::fromChannelGroup(RsGxsChannelGroup &group, bool moveImage)
|
||||||
|
@ -181,6 +197,7 @@ bool RsGxsChannelGroupItem::toChannelGroup(RsGxsChannelGroup &group, bool moveIm
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TO_REMOVE
|
||||||
|
|
||||||
uint32_t RsGxsChannelSerialiser::sizeGxsChannelGroupItem(RsGxsChannelGroupItem *item)
|
uint32_t RsGxsChannelSerialiser::sizeGxsChannelGroupItem(RsGxsChannelGroupItem *item)
|
||||||
{
|
{
|
||||||
|
@ -191,7 +208,15 @@ uint32_t RsGxsChannelSerialiser::sizeGxsChannelGroupItem(RsGxsChannelGroupItem *
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void RsGxsChannelGroupItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx)
|
||||||
|
{
|
||||||
|
RsTypeSerializer::serial_process (j,ctx,TLV_TYPE_STR_DESCR,mDescription,"mDescription") ;
|
||||||
|
RsTypeSerializer::serial_process<RsTlvItem>(j,ctx,mImage,"mImage") ;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef TO_REMOVE
|
||||||
bool RsGxsChannelSerialiser::serialiseGxsChannelGroupItem(RsGxsChannelGroupItem *item, void *data, uint32_t *size)
|
bool RsGxsChannelSerialiser::serialiseGxsChannelGroupItem(RsGxsChannelGroupItem *item, void *data, uint32_t *size)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -312,14 +337,6 @@ RsGxsChannelGroupItem* RsGxsChannelSerialiser::deserialiseGxsChannelGroupItem(vo
|
||||||
/*****************************************************************************************/
|
/*****************************************************************************************/
|
||||||
/*****************************************************************************************/
|
/*****************************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
void RsGxsChannelPostItem::clear()
|
|
||||||
{
|
|
||||||
mMsg.clear();
|
|
||||||
mAttachment.TlvClear();
|
|
||||||
mThumbnail.TlvClear();
|
|
||||||
}
|
|
||||||
|
|
||||||
std::ostream& RsGxsChannelPostItem::print(std::ostream& out, uint16_t indent)
|
std::ostream& RsGxsChannelPostItem::print(std::ostream& out, uint16_t indent)
|
||||||
{
|
{
|
||||||
printRsItemBase(out, "RsGxsChannelPostItem", indent);
|
printRsItemBase(out, "RsGxsChannelPostItem", indent);
|
||||||
|
@ -337,6 +354,7 @@ std::ostream& RsGxsChannelPostItem::print(std::ostream& out, uint16_t indent)
|
||||||
printRsItemEnd(out ,"RsGxsChannelPostItem", indent);
|
printRsItemEnd(out ,"RsGxsChannelPostItem", indent);
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
bool RsGxsChannelPostItem::fromChannelPost(RsGxsChannelPost &post, bool moveImage)
|
bool RsGxsChannelPostItem::fromChannelPost(RsGxsChannelPost &post, bool moveImage)
|
||||||
|
@ -402,6 +420,14 @@ bool RsGxsChannelPostItem::toChannelPost(RsGxsChannelPost &post, bool moveImage)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RsGxsChannelPostItem::clear()
|
||||||
|
{
|
||||||
|
mMsg.clear();
|
||||||
|
mAttachment.TlvClear();
|
||||||
|
mThumbnail.TlvClear();
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef TO_REMOVE
|
||||||
|
|
||||||
uint32_t RsGxsChannelSerialiser::sizeGxsChannelPostItem(RsGxsChannelPostItem *item)
|
uint32_t RsGxsChannelSerialiser::sizeGxsChannelPostItem(RsGxsChannelPostItem *item)
|
||||||
{
|
{
|
||||||
|
@ -413,7 +439,16 @@ uint32_t RsGxsChannelSerialiser::sizeGxsChannelPostItem(RsGxsChannelPostItem *it
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void RsGxsChannelPostItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx)
|
||||||
|
{
|
||||||
|
RsTypeSerializer::serial_process (j,ctx,TLV_TYPE_STR_MSG,mMsg,"mMsg") ;
|
||||||
|
RsTypeSerializer::serial_process<RsTlvItem>(j,ctx,mAttachment,"mAttachment") ;
|
||||||
|
RsTypeSerializer::serial_process<RsTlvItem>(j,ctx,mThumbnail,"mThumbnail") ;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef TO_REMOVE
|
||||||
bool RsGxsChannelSerialiser::serialiseGxsChannelPostItem(RsGxsChannelPostItem *item, void *data, uint32_t *size)
|
bool RsGxsChannelSerialiser::serialiseGxsChannelPostItem(RsGxsChannelPostItem *item, void *data, uint32_t *size)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -533,4 +568,5 @@ RsGxsChannelPostItem* RsGxsChannelSerialiser::deserialiseGxsChannelPostItem(void
|
||||||
/*****************************************************************************************/
|
/*****************************************************************************************/
|
||||||
/*****************************************************************************************/
|
/*****************************************************************************************/
|
||||||
/*****************************************************************************************/
|
/*****************************************************************************************/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -37,22 +37,23 @@
|
||||||
|
|
||||||
#include "retroshare/rsgxschannels.h"
|
#include "retroshare/rsgxschannels.h"
|
||||||
|
|
||||||
|
#include "serialization/rsserializer.h"
|
||||||
|
|
||||||
#include "util/rsdir.h"
|
#include "util/rsdir.h"
|
||||||
|
|
||||||
const uint8_t RS_PKT_SUBTYPE_GXSCHANNEL_GROUP_ITEM = 0x02;
|
const uint8_t RS_PKT_SUBTYPE_GXSCHANNEL_GROUP_ITEM = 0x02;
|
||||||
const uint8_t RS_PKT_SUBTYPE_GXSCHANNEL_POST_ITEM = 0x03;
|
const uint8_t RS_PKT_SUBTYPE_GXSCHANNEL_POST_ITEM = 0x03;
|
||||||
|
|
||||||
class RsGxsChannelGroupItem : public RsGxsGrpItem
|
class RsGxsChannelGroupItem : public RsGxsGrpItem
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
RsGxsChannelGroupItem(): RsGxsGrpItem(RS_SERVICE_GXS_TYPE_CHANNELS,
|
RsGxsChannelGroupItem(): RsGxsGrpItem(RS_SERVICE_GXS_TYPE_CHANNELS, RS_PKT_SUBTYPE_GXSCHANNEL_GROUP_ITEM) {}
|
||||||
RS_PKT_SUBTYPE_GXSCHANNEL_GROUP_ITEM) { return;}
|
virtual ~RsGxsChannelGroupItem() {}
|
||||||
virtual ~RsGxsChannelGroupItem() { return;}
|
|
||||||
|
|
||||||
void clear();
|
void clear();
|
||||||
std::ostream &print(std::ostream &out, uint16_t indent = 0);
|
|
||||||
|
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx);
|
||||||
|
|
||||||
// use conversion functions to transform:
|
// use conversion functions to transform:
|
||||||
bool fromChannelGroup(RsGxsChannelGroup &group, bool moveImage);
|
bool fromChannelGroup(RsGxsChannelGroup &group, bool moveImage);
|
||||||
|
@ -66,11 +67,11 @@ class RsGxsChannelPostItem : public RsGxsMsgItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
RsGxsChannelPostItem(): RsGxsMsgItem(RS_SERVICE_GXS_TYPE_CHANNELS,
|
RsGxsChannelPostItem(): RsGxsMsgItem(RS_SERVICE_GXS_TYPE_CHANNELS, RS_PKT_SUBTYPE_GXSCHANNEL_POST_ITEM) {}
|
||||||
RS_PKT_SUBTYPE_GXSCHANNEL_POST_ITEM) {return; }
|
virtual ~RsGxsChannelPostItem() {}
|
||||||
virtual ~RsGxsChannelPostItem() { return;}
|
void clear();
|
||||||
void clear();
|
|
||||||
std::ostream &print(std::ostream &out, uint16_t indent = 0);
|
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx);
|
||||||
|
|
||||||
// Slightly unusual structure.
|
// Slightly unusual structure.
|
||||||
// use conversion functions to transform:
|
// use conversion functions to transform:
|
||||||
|
@ -87,25 +88,10 @@ class RsGxsChannelSerialiser : public RsGxsCommentSerialiser
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
RsGxsChannelSerialiser()
|
RsGxsChannelSerialiser() :RsGxsCommentSerialiser(RS_SERVICE_GXS_TYPE_CHANNELS) {}
|
||||||
:RsGxsCommentSerialiser(RS_SERVICE_GXS_TYPE_CHANNELS)
|
virtual ~RsGxsChannelSerialiser() {}
|
||||||
{ return; }
|
|
||||||
virtual ~RsGxsChannelSerialiser() { return; }
|
|
||||||
|
|
||||||
uint32_t size(RsItem *item);
|
|
||||||
bool serialise (RsItem *item, void *data, uint32_t *size);
|
|
||||||
RsItem * deserialise(void *data, uint32_t *size);
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
uint32_t sizeGxsChannelGroupItem(RsGxsChannelGroupItem *item);
|
|
||||||
bool serialiseGxsChannelGroupItem (RsGxsChannelGroupItem *item, void *data, uint32_t *size);
|
|
||||||
RsGxsChannelGroupItem * deserialiseGxsChannelGroupItem(void *data, uint32_t *size);
|
|
||||||
|
|
||||||
uint32_t sizeGxsChannelPostItem(RsGxsChannelPostItem *item);
|
|
||||||
bool serialiseGxsChannelPostItem (RsGxsChannelPostItem *item, void *data, uint32_t *size);
|
|
||||||
RsGxsChannelPostItem * deserialiseGxsChannelPostItem(void *data, uint32_t *size);
|
|
||||||
|
|
||||||
|
virtual RsItem *create_item(uint16_t service_id,uint8_t item_subtype) const ;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* RS_GXS_CHANNEL_ITEMS_H */
|
#endif /* RS_GXS_CHANNEL_ITEMS_H */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue