mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-20 12:24:24 -04:00
switched PluginItems to new serialization
This commit is contained in:
parent
45eaf27deb
commit
d32a8caf06
3 changed files with 24 additions and 31 deletions
|
@ -1,5 +1,6 @@
|
||||||
#include "rspluginitems.h"
|
#include "rspluginitems.h"
|
||||||
|
|
||||||
|
#ifdef TO_REMOVE
|
||||||
#ifndef WINDOWS_SYS
|
#ifndef WINDOWS_SYS
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#endif
|
#endif
|
||||||
|
@ -130,3 +131,5 @@ std::ostream& RsPluginHashSetItem::print(std::ostream& o, uint16_t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -26,14 +26,10 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "serialiser/rsserial.h"
|
#include "rsitems/rsitem.h"
|
||||||
#include "rsitems/rsconfigitems.h"
|
#include "rsitems/rsconfigitems.h"
|
||||||
#include "serialiser/rsbaseserial.h"
|
|
||||||
|
|
||||||
#if 0
|
#include "serialization/rstypeserializer.h"
|
||||||
#include "serialiser/rstlvbase.h"
|
|
||||||
#include "serialiser/rstlvtypes.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const uint8_t RS_PKT_CLASS_PLUGIN_SUBTYPE_HASHSET = 0x01 ;
|
const uint8_t RS_PKT_CLASS_PLUGIN_SUBTYPE_HASHSET = 0x01 ;
|
||||||
|
|
||||||
|
@ -43,41 +39,35 @@ class RsPluginItem: public RsItem
|
||||||
RsPluginItem(uint8_t plugin_item_subtype): RsItem(RS_PKT_VERSION1,RS_PKT_CLASS_CONFIG,RS_PKT_TYPE_PLUGIN_CONFIG,plugin_item_subtype) {}
|
RsPluginItem(uint8_t plugin_item_subtype): RsItem(RS_PKT_VERSION1,RS_PKT_CLASS_CONFIG,RS_PKT_TYPE_PLUGIN_CONFIG,plugin_item_subtype) {}
|
||||||
virtual ~RsPluginItem() {}
|
virtual ~RsPluginItem() {}
|
||||||
|
|
||||||
virtual bool serialise(void *data,uint32_t& size) = 0 ; // Isn't it better that items can serialise themselves ?
|
|
||||||
virtual uint32_t serial_size() = 0 ; // deserialise is handled using a constructor
|
|
||||||
|
|
||||||
virtual void clear() {}
|
virtual void clear() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
class RsPluginSerialiser: public RsSerialType
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
RsPluginSerialiser() : RsSerialType(RS_PKT_VERSION1, RS_PKT_CLASS_CONFIG, RS_PKT_TYPE_PLUGIN_CONFIG) {}
|
|
||||||
|
|
||||||
virtual uint32_t size (RsItem *item)
|
|
||||||
{
|
|
||||||
return dynamic_cast<RsPluginItem *>(item)->serial_size() ;
|
|
||||||
}
|
|
||||||
virtual bool serialise(RsItem *item, void *data, uint32_t *size)
|
|
||||||
{
|
|
||||||
return dynamic_cast<RsPluginItem *>(item)->serialise(data,*size) ;
|
|
||||||
}
|
|
||||||
virtual RsItem *deserialise (void *data, uint32_t *size) ;
|
|
||||||
};
|
|
||||||
|
|
||||||
class RsPluginHashSetItem: public RsPluginItem
|
class RsPluginHashSetItem: public RsPluginItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
RsPluginHashSetItem() : RsPluginItem(RS_PKT_CLASS_PLUGIN_SUBTYPE_HASHSET) {}
|
RsPluginHashSetItem() : RsPluginItem(RS_PKT_CLASS_PLUGIN_SUBTYPE_HASHSET) {}
|
||||||
RsPluginHashSetItem(void *data,uint32_t size) ;
|
RsPluginHashSetItem(void *data,uint32_t size) ;
|
||||||
|
|
||||||
|
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx)
|
||||||
|
{
|
||||||
|
RsTypeSerializer::serial_process<RsTlvItem>(j,ctx,hashes,"hashes");
|
||||||
|
}
|
||||||
|
|
||||||
RsTlvHashSet hashes ;
|
RsTlvHashSet hashes ;
|
||||||
|
};
|
||||||
|
|
||||||
virtual std::ostream& print(std::ostream& o, uint16_t) ;
|
class RsPluginSerialiser: public RsConfigSerializer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
RsPluginSerialiser() : RsConfigSerializer(RS_PKT_CLASS_CONFIG, RS_PKT_TYPE_PLUGIN_CONFIG) {}
|
||||||
|
|
||||||
protected:
|
virtual RsItem *create_item(uint8_t class_type, uint8_t item_type) const
|
||||||
virtual bool serialise(void *data,uint32_t& size) ;
|
{
|
||||||
virtual uint32_t serial_size() ;
|
if(class_type == RS_PKT_TYPE_PLUGIN_CONFIG && item_type == RS_PKT_CLASS_PLUGIN_SUBTYPE_HASHSET)
|
||||||
|
return new RsPluginHashSetItem() ;
|
||||||
|
|
||||||
|
return NULL ;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue