switch rsrecognitems to new serialization

This commit is contained in:
csoler 2017-04-28 23:28:56 +02:00
parent 8341c68388
commit 23492698d4
2 changed files with 89 additions and 57 deletions

View file

@ -25,6 +25,7 @@
#include "serialiser/rsgxsrecognitems.h" #include "serialiser/rsgxsrecognitems.h"
#include "serialiser/rsbaseserial.h" #include "serialiser/rsbaseserial.h"
#include "serialization/rstypeserializer.h"
/*** /***
#define RSSERIAL_DEBUG 1 #define RSSERIAL_DEBUG 1
@ -34,9 +35,19 @@
/*************************************************************************/ /*************************************************************************/
RsGxsRecognReqItem::~RsGxsRecognReqItem() RsItem *RsGxsRecognSerialiser::create_item(uint16_t service, uint8_t item_sub_id) const
{ {
return; if(service != RS_SERVICE_TYPE_GXS_RECOGN)
return NULL ;
switch(item_sub_id)
{
case RS_PKT_SUBTYPE_RECOGN_REQ: return new RsGxsRecognReqItem();
case RS_PKT_SUBTYPE_RECOGN_SIGNER: return new RsGxsRecognSignerItem();
case RS_PKT_SUBTYPE_RECOGN_TAG: return new RsGxsRecognTagItem();
default:
return NULL ;
}
} }
void RsGxsRecognReqItem::clear() void RsGxsRecognReqItem::clear()
@ -53,6 +64,12 @@ void RsGxsRecognReqItem::clear()
sign.TlvClear(); sign.TlvClear();
} }
#ifdef TO_REMOVE
RsGxsRecognReqItem::~RsGxsRecognReqItem()
{
return;
}
std::ostream &RsGxsRecognReqItem::print(std::ostream &out, uint16_t indent) std::ostream &RsGxsRecognReqItem::print(std::ostream &out, uint16_t indent)
{ {
@ -104,6 +121,21 @@ uint32_t RsGxsRecognSerialiser::sizeReq(RsGxsRecognReqItem *item)
return s; return s;
} }
#endif
void RsGxsRecognReqItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx)
{
RsTypeSerializer::serial_process<uint32_t> (j,ctx,issued_at ,"issued_at") ;
RsTypeSerializer::serial_process<uint32_t> (j,ctx,period ,"period") ;
RsTypeSerializer::serial_process<uint16_t> (j,ctx,tag_class ,"tag_class") ;
RsTypeSerializer::serial_process<uint16_t> (j,ctx,tag_type ,"tag_type") ;
RsTypeSerializer::serial_process (j,ctx,identity ,"identity") ;
RsTypeSerializer::serial_process (j,ctx,1,nickname ,"nickname") ;
RsTypeSerializer::serial_process (j,ctx,1,comment ,"comment") ;
RsTypeSerializer::serial_process<RsTlvItem>(j,ctx,sign ,"sign") ;
}
#ifdef TO_REMOVE
/* serialise the data to the buffer */ /* serialise the data to the buffer */
bool RsGxsRecognSerialiser::serialiseReq(RsGxsRecognReqItem *item, void *data, uint32_t *pktsize) bool RsGxsRecognSerialiser::serialiseReq(RsGxsRecognReqItem *item, void *data, uint32_t *pktsize)
{ {
@ -217,6 +249,7 @@ RsGxsRecognTagItem::~RsGxsRecognTagItem()
{ {
return; return;
} }
#endif
void RsGxsRecognTagItem::clear() void RsGxsRecognTagItem::clear()
{ {
@ -232,6 +265,7 @@ void RsGxsRecognTagItem::clear()
sign.TlvClear(); sign.TlvClear();
} }
#ifdef TO_REMOVE
std::ostream &RsGxsRecognTagItem::print(std::ostream &out, uint16_t indent) std::ostream &RsGxsRecognTagItem::print(std::ostream &out, uint16_t indent)
{ {
printRsItemBase(out, "RsGxsRecognTagItem", indent); printRsItemBase(out, "RsGxsRecognTagItem", indent);
@ -279,7 +313,20 @@ uint32_t RsGxsRecognSerialiser::sizeTag(RsGxsRecognTagItem *item)
return s; return s;
} }
#endif
void RsGxsRecognTagItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx)
{
RsTypeSerializer::serial_process<uint32_t> (j,ctx,valid_from ,"valid_from") ;
RsTypeSerializer::serial_process<uint32_t> (j,ctx,valid_to ,"valid_to") ;
RsTypeSerializer::serial_process<uint16_t> (j,ctx,tag_class ,"tag_class") ;
RsTypeSerializer::serial_process<uint16_t> (j,ctx,tag_type ,"tag_type") ;
RsTypeSerializer::serial_process (j,ctx,identity ,"identity");
RsTypeSerializer::serial_process (j,ctx,1,nickname ,"nickname") ;
RsTypeSerializer::serial_process<RsTlvItem>(j,ctx,sign ,"sign") ;
}
#ifdef TO_REMOVE
/* serialise the data to the buffer */ /* serialise the data to the buffer */
bool RsGxsRecognSerialiser::serialiseTag(RsGxsRecognTagItem *item, void *data, uint32_t *pktsize) bool RsGxsRecognSerialiser::serialiseTag(RsGxsRecognTagItem *item, void *data, uint32_t *pktsize)
{ {
@ -393,6 +440,7 @@ RsGxsRecognSignerItem::~RsGxsRecognSignerItem()
{ {
return; return;
} }
#endif
void RsGxsRecognSignerItem::clear() void RsGxsRecognSignerItem::clear()
{ {
@ -401,6 +449,7 @@ void RsGxsRecognSignerItem::clear()
sign.TlvClear(); sign.TlvClear();
} }
#ifdef TO_REMOVE
std::ostream &RsGxsRecognSignerItem::print(std::ostream &out, uint16_t indent) std::ostream &RsGxsRecognSignerItem::print(std::ostream &out, uint16_t indent)
{ {
printRsItemBase(out, "RsGxsRecognSignerItem", indent); printRsItemBase(out, "RsGxsRecognSignerItem", indent);
@ -435,7 +484,16 @@ uint32_t RsGxsRecognSerialiser::sizeSigner(RsGxsRecognSignerItem *item)
return s; return s;
} }
#endif
void RsGxsRecognSignerItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx)
{
RsTypeSerializer::serial_process<RsTlvItem>(j,ctx,signing_classes ,"signing_classes") ;
RsTypeSerializer::serial_process<RsTlvItem>(j,ctx,key ,"key");
RsTypeSerializer::serial_process<RsTlvItem>(j,ctx,sign ,"sign") ;
}
#ifdef TO_REMOVE
/* serialise the data to the buffer */ /* serialise the data to the buffer */
bool RsGxsRecognSerialiser::serialiseSigner(RsGxsRecognSignerItem *item, void *data, uint32_t *pktsize) bool RsGxsRecognSerialiser::serialiseSigner(RsGxsRecognSignerItem *item, void *data, uint32_t *pktsize)
{ {
@ -604,6 +662,6 @@ RsItem *RsGxsRecognSerialiser::deserialise(void *data, uint32_t *pktsize)
} }
/*************************************************************************/ /*************************************************************************/
#endif

View file

@ -32,7 +32,6 @@
#include "rsitems/rsserviceids.h" #include "rsitems/rsserviceids.h"
#include "rsitems/itempriorities.h" #include "rsitems/itempriorities.h"
#include "serialiser/rsserial.h"
#include "serialiser/rstlvkeys.h" #include "serialiser/rstlvkeys.h"
#include "serialiser/rstlvidset.h" #include "serialiser/rstlvidset.h"
@ -46,25 +45,23 @@
/**************************************************************************/ /**************************************************************************/
#define RS_PKT_SUBTYPE_RECOGN_REQ 0x01 #define RS_PKT_SUBTYPE_RECOGN_REQ 0x01
#define RS_PKT_SUBTYPE_RECOGN_TAG 0x02 #define RS_PKT_SUBTYPE_RECOGN_TAG 0x02
#define RS_PKT_SUBTYPE_RECOGN_SIGNER 0x03 #define RS_PKT_SUBTYPE_RECOGN_SIGNER 0x03
class RsGxsRecognReqItem: public RsItem class RsGxsRecognReqItem: public RsItem
{ {
public: public:
RsGxsRecognReqItem() RsGxsRecognReqItem() :RsItem(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_GXS_RECOGN, RS_PKT_SUBTYPE_RECOGN_REQ)
:RsItem(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_GXS_RECOGN, {
RS_PKT_SUBTYPE_RECOGN_REQ)
{
setPriorityLevel(QOS_PRIORITY_DEFAULT); setPriorityLevel(QOS_PRIORITY_DEFAULT);
return; return;
} }
virtual ~RsGxsRecognReqItem(); virtual ~RsGxsRecognReqItem(){}
virtual void clear(); virtual void clear();
std::ostream &print(std::ostream &out, uint16_t indent = 0);
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx);
uint32_t issued_at; uint32_t issued_at;
uint32_t period; uint32_t period;
@ -82,16 +79,15 @@ std::ostream &print(std::ostream &out, uint16_t indent = 0);
class RsGxsRecognTagItem: public RsItem class RsGxsRecognTagItem: public RsItem
{ {
public: public:
RsGxsRecognTagItem() RsGxsRecognTagItem() :RsItem(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_GXS_RECOGN, RS_PKT_SUBTYPE_RECOGN_TAG)
:RsItem(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_GXS_RECOGN,
RS_PKT_SUBTYPE_RECOGN_TAG)
{ {
setPriorityLevel(QOS_PRIORITY_DEFAULT); setPriorityLevel(QOS_PRIORITY_DEFAULT);
return; return;
} }
virtual ~RsGxsRecognTagItem(); virtual ~RsGxsRecognTagItem(){}
virtual void clear(); virtual void clear();
std::ostream &print(std::ostream &out, uint16_t indent = 0);
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx);
uint32_t valid_from; uint32_t valid_from;
uint32_t valid_to; uint32_t valid_to;
@ -107,52 +103,30 @@ std::ostream &print(std::ostream &out, uint16_t indent = 0);
class RsGxsRecognSignerItem: public RsItem class RsGxsRecognSignerItem: public RsItem
{ {
public: public:
RsGxsRecognSignerItem() RsGxsRecognSignerItem() :RsItem(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_GXS_RECOGN, RS_PKT_SUBTYPE_RECOGN_SIGNER)
:RsItem(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_GXS_RECOGN, {
RS_PKT_SUBTYPE_RECOGN_SIGNER)
{
setPriorityLevel(QOS_PRIORITY_DEFAULT); setPriorityLevel(QOS_PRIORITY_DEFAULT);
return; return;
} }
virtual ~RsGxsRecognSignerItem(); virtual ~RsGxsRecognSignerItem(){}
virtual void clear(); virtual void clear();
std::ostream &print(std::ostream &out, uint16_t indent = 0);
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx);
RsTlvServiceIdSet signing_classes; RsTlvServiceIdSet signing_classes;
RsTlvPublicRSAKey key; // has from->to, and flags. RsTlvPublicRSAKey key; // has from->to, and flags.
RsTlvKeySignature sign; RsTlvKeySignature sign;
}; };
class RsGxsRecognSerialiser: public RsSerialType class RsGxsRecognSerialiser: public RsServiceSerializer
{ {
public: public:
RsGxsRecognSerialiser() RsGxsRecognSerialiser() :RsServiceSerializer(RS_SERVICE_TYPE_GXS_RECOGN) {}
:RsSerialType(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_GXS_RECOGN) virtual ~RsGxsRecognSerialiser() {}
{ return; }
virtual ~RsGxsRecognSerialiser()
{ return; }
virtual uint32_t size(RsItem *);
virtual bool serialise (RsItem *item, void *data, uint32_t *size);
virtual RsItem * deserialise(void *data, uint32_t *size);
private:
virtual uint32_t sizeReq(RsGxsRecognReqItem *);
virtual bool serialiseReq(RsGxsRecognReqItem *item, void *data, uint32_t *size);
virtual RsGxsRecognReqItem *deserialiseReq(void *data, uint32_t *size);
virtual uint32_t sizeTag(RsGxsRecognTagItem *);
virtual bool serialiseTag(RsGxsRecognTagItem *item, void *data, uint32_t *size);
virtual RsGxsRecognTagItem *deserialiseTag(void *data, uint32_t *size);
virtual uint32_t sizeSigner(RsGxsRecognSignerItem *);
virtual bool serialiseSigner(RsGxsRecognSignerItem *item, void *data, uint32_t *size);
virtual RsGxsRecognSignerItem *deserialiseSigner(void *data, uint32_t *size);
virtual RsItem *create_item(uint16_t service, uint8_t item_sub_id) const;
}; };
/**************************************************************************/ /**************************************************************************/