mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-06 21:58:57 -04:00
Merged branch v0.5-GenericTunneling into trunk (Rev. 6284 to 6410).
- adds turtle router as a generic tunneling service - made ftServer a client of the service. Now turtle file items are handled in ftServer - added new client: p3MsgService to send/recv pgp-encrypted distant messages - added new client: p3ChatService to perform private (AES-encrypted) distant chat through tunnels. - The GUI is disabled for now, since it needs some polishing before being fully usable. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6411 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
commit
dc2521cf71
62 changed files with 5031 additions and 1989 deletions
|
@ -23,6 +23,10 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
// This file centralises QoS priorities for all transfer RsItems.
|
||||
//
|
||||
const uint8_t QOS_PRIORITY_UNKNOWN = 0 ;
|
||||
|
@ -45,6 +49,7 @@ const uint8_t QOS_PRIORITY_RS_TURTLE_CHUNK_CRC = 5 ;
|
|||
const uint8_t QOS_PRIORITY_RS_TURTLE_FILE_MAP = 3 ;
|
||||
const uint8_t QOS_PRIORITY_RS_TURTLE_GENERIC_ITEM = 3 ;
|
||||
const uint8_t QOS_PRIORITY_RS_TURTLE_FORWARD_FILE_DATA= 3 ;
|
||||
const uint8_t QOS_PRIORITY_RS_TURTLE_GENERIC_DATA = 5 ;
|
||||
|
||||
// File transfer
|
||||
//
|
||||
|
|
|
@ -188,6 +188,30 @@ std::ostream& RsPrivateChatMsgConfigItem::print(std::ostream &out, uint16_t inde
|
|||
printRsItemEnd(out, "RsPrivateChatMsgConfigItem", indent);
|
||||
return out;
|
||||
}
|
||||
std::ostream& RsPrivateChatDistantInviteConfigItem::print(std::ostream &out, uint16_t indent)
|
||||
{
|
||||
printRsItemBase(out, "RsPrivateChatDistantInviteConfigItem", indent);
|
||||
uint16_t int_Indent = indent + 2;
|
||||
|
||||
printIndent(out, int_Indent);
|
||||
out << "radix string: " << encrypted_radix64_string << std::endl;
|
||||
|
||||
printIndent(out, int_Indent);
|
||||
out << "hash: " << hash << std::endl;
|
||||
|
||||
printIndent(out, int_Indent);
|
||||
out << "destination pgp_id: " << destination_pgp_id << std::endl;
|
||||
|
||||
printIndent(out, int_Indent);
|
||||
out << "time of validity: " << time_of_validity << std::endl;
|
||||
|
||||
printIndent(out, int_Indent);
|
||||
out << "time of last hit: " << last_hit_time << std::endl;
|
||||
|
||||
printRsItemEnd(out, "RsPrivateChatDistantInviteConfigItem", indent);
|
||||
return out;
|
||||
}
|
||||
|
||||
|
||||
std::ostream& RsChatStatusItem::print(std::ostream &out, uint16_t indent)
|
||||
{
|
||||
|
@ -195,7 +219,7 @@ std::ostream& RsChatStatusItem::print(std::ostream &out, uint16_t indent)
|
|||
uint16_t int_Indent = indent + 2;
|
||||
printIndent(out, int_Indent);
|
||||
out << "Status string: " << status_string << std::endl;
|
||||
out << "Flags : " << (void*)flags << std::endl;
|
||||
out << "Flags : " << std::hex << flags << std::dec << std::endl;
|
||||
|
||||
printRsItemEnd(out, "RsChatStatusItem", indent);
|
||||
return out;
|
||||
|
@ -245,6 +269,7 @@ RsItem *RsChatSerialiser::deserialise(void *data, uint32_t *pktsize)
|
|||
{
|
||||
case RS_PKT_SUBTYPE_DEFAULT: return new RsChatMsgItem(data,*pktsize) ;
|
||||
case RS_PKT_SUBTYPE_PRIVATECHATMSG_CONFIG: return new RsPrivateChatMsgConfigItem(data,*pktsize) ;
|
||||
case RS_PKT_SUBTYPE_DISTANT_INVITE_CONFIG: return new RsPrivateChatDistantInviteConfigItem(data,*pktsize) ;
|
||||
case RS_PKT_SUBTYPE_CHAT_STATUS: return new RsChatStatusItem(data,*pktsize) ;
|
||||
case RS_PKT_SUBTYPE_CHAT_AVATAR: return new RsChatAvatarItem(data,*pktsize) ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_MSG: return new RsChatLobbyMsgItem(data,*pktsize) ;
|
||||
|
@ -387,7 +412,18 @@ uint32_t RsPrivateChatMsgConfigItem::serial_size()
|
|||
|
||||
return s;
|
||||
}
|
||||
uint32_t RsPrivateChatDistantInviteConfigItem::serial_size()
|
||||
{
|
||||
uint32_t s = 8; /* header */
|
||||
s += GetTlvStringSize(hash);
|
||||
s += GetTlvStringSize(encrypted_radix64_string);
|
||||
s += GetTlvStringSize(destination_pgp_id);
|
||||
s += 16; /* aes_key */
|
||||
s += 4; /* time_of_validity */
|
||||
s += 4; /* last_hit_time */
|
||||
|
||||
return s;
|
||||
}
|
||||
uint32_t RsChatStatusItem::serial_size()
|
||||
{
|
||||
uint32_t s = 8; /* header */
|
||||
|
@ -780,7 +816,49 @@ bool RsPrivateChatMsgConfigItem::serialise(void *data, uint32_t& pktsize)
|
|||
|
||||
return ok;
|
||||
}
|
||||
bool RsPrivateChatDistantInviteConfigItem::serialise(void *data, uint32_t& pktsize)
|
||||
{
|
||||
uint32_t tlvsize = serial_size() ;
|
||||
uint32_t offset = 0;
|
||||
|
||||
if (pktsize < tlvsize)
|
||||
return false; /* not enough space */
|
||||
|
||||
pktsize = tlvsize;
|
||||
|
||||
bool ok = true;
|
||||
|
||||
ok &= setRsItemHeader(data, tlvsize, PacketId(), tlvsize);
|
||||
|
||||
#ifdef CHAT_DEBUG
|
||||
std::cerr << "RsChatSerialiser::serialiseItem() Header: " << ok << std::endl;
|
||||
std::cerr << "RsChatSerialiser::serialiseItem() Size: " << tlvsize << std::endl;
|
||||
#endif
|
||||
|
||||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
/* add mandatory parts first */
|
||||
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_KEY, hash);
|
||||
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_LINK, encrypted_radix64_string);
|
||||
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_GPGID, destination_pgp_id);
|
||||
|
||||
memcpy(&((unsigned char *)data)[offset],aes_key,16) ;
|
||||
offset += 16 ;
|
||||
|
||||
ok &= setRawUInt32(data, tlvsize, &offset, time_of_validity);
|
||||
ok &= setRawUInt32(data, tlvsize, &offset, last_hit_time);
|
||||
|
||||
if (offset != tlvsize)
|
||||
{
|
||||
ok = false;
|
||||
#ifdef CHAT_DEBUG
|
||||
std::cerr << "RsChatSerialiser::serialiseItem() Size Error! " << std::endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
return ok;
|
||||
}
|
||||
bool RsChatStatusItem::serialise(void *data, uint32_t& pktsize)
|
||||
{
|
||||
uint32_t tlvsize = serial_size() ;
|
||||
|
@ -1122,6 +1200,32 @@ RsPrivateChatMsgConfigItem::RsPrivateChatMsgConfigItem(void *data,uint32_t /*siz
|
|||
ok &= GetTlvWideString(data, rssize, &offset, TLV_TYPE_WSTR_MSG, message);
|
||||
ok &= getRawUInt32(data, rssize, &offset, &recvTime);
|
||||
|
||||
#ifdef CHAT_DEBUG
|
||||
std::cerr << "Building new chat msg config item." << std::endl ;
|
||||
#endif
|
||||
if (offset != rssize)
|
||||
std::cerr << "Size error while deserializing." << std::endl ;
|
||||
if (!ok)
|
||||
std::cerr << "Unknown error while deserializing." << std::endl ;
|
||||
}
|
||||
RsPrivateChatDistantInviteConfigItem::RsPrivateChatDistantInviteConfigItem(void *data,uint32_t /*size*/)
|
||||
: RsChatItem(RS_PKT_SUBTYPE_DISTANT_INVITE_CONFIG)
|
||||
{
|
||||
uint32_t offset = 8; // skip the header
|
||||
uint32_t rssize = getRsItemSize(data);
|
||||
bool ok = true ;
|
||||
|
||||
/* get mandatory parts first */
|
||||
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_KEY, hash);
|
||||
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_LINK, encrypted_radix64_string);
|
||||
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_GPGID, destination_pgp_id);
|
||||
|
||||
memcpy(aes_key,&((unsigned char*)data)[offset],16) ;
|
||||
offset += 16 ;
|
||||
|
||||
ok &= getRawUInt32(data, rssize, &offset, &time_of_validity);
|
||||
ok &= getRawUInt32(data, rssize, &offset, &last_hit_time);
|
||||
|
||||
#ifdef CHAT_DEBUG
|
||||
std::cerr << "Building new chat msg config item." << std::endl ;
|
||||
#endif
|
||||
|
@ -1278,6 +1382,26 @@ void RsMsgTagType::clear()
|
|||
}
|
||||
|
||||
|
||||
void RsPublicMsgInviteConfigItem::clear()
|
||||
{
|
||||
hash.clear() ;
|
||||
time_stamp = 0 ;
|
||||
}
|
||||
std::ostream& RsPublicMsgInviteConfigItem::print(std::ostream &out, uint16_t indent)
|
||||
{
|
||||
printRsItemBase(out, "RsPublicMsgInviteConfigItem", indent);
|
||||
uint16_t int_Indent = indent + 2;
|
||||
|
||||
printIndent(out, int_Indent);
|
||||
out << "hash : " << hash << std::endl;
|
||||
|
||||
printIndent(out, int_Indent);
|
||||
out << "timt : " << time_stamp << std::endl;
|
||||
|
||||
printRsItemEnd(out, "RsPublicMsgInviteConfigItem", indent);
|
||||
|
||||
return out;
|
||||
}
|
||||
void RsMsgTags::clear()
|
||||
{
|
||||
msgId = 0;
|
||||
|
@ -1476,7 +1600,15 @@ RsMsgItem *RsMsgSerialiser::deserialiseMsgItem(void *data, uint32_t *pktsize)
|
|||
|
||||
return item;
|
||||
}
|
||||
uint32_t RsMsgSerialiser::sizePublicMsgInviteConfigItem(RsPublicMsgInviteConfigItem* item)
|
||||
{
|
||||
uint32_t s = 8; /* header */
|
||||
|
||||
s += GetTlvStringSize(item->hash);
|
||||
s += 4; /* time_stamp */
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
uint32_t RsMsgSerialiser::sizeTagItem(RsMsgTagType* item)
|
||||
{
|
||||
|
@ -1489,6 +1621,44 @@ uint32_t RsMsgSerialiser::sizeTagItem(RsMsgTagType* item)
|
|||
return s;
|
||||
}
|
||||
|
||||
bool RsMsgSerialiser::serialisePublicMsgInviteConfigItem(RsPublicMsgInviteConfigItem *item, void *data, uint32_t* pktsize)
|
||||
{
|
||||
uint32_t tlvsize = sizePublicMsgInviteConfigItem(item);
|
||||
uint32_t offset = 0;
|
||||
|
||||
if (*pktsize < tlvsize)
|
||||
return false; /* not enough space */
|
||||
|
||||
*pktsize = tlvsize;
|
||||
|
||||
bool ok = true;
|
||||
|
||||
ok &= setRsItemHeader(data, tlvsize, item->PacketId(), tlvsize);
|
||||
|
||||
#ifdef RSSERIAL_DEBUG
|
||||
std::cerr << "RsMsgSerialiser::serialiseMsgTagItem() Header: " << ok << std::endl;
|
||||
std::cerr << "RsMsgSerialiser::serialiseMsgTagItem() Size: " << tlvsize << std::endl;
|
||||
#endif
|
||||
|
||||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
/* add mandatory parts first */
|
||||
|
||||
ok &= SetTlvString(data,tlvsize,&offset, TLV_TYPE_STR_HASH_SHA1, item->hash);
|
||||
ok &= setRawUInt32(data,tlvsize,&offset, item->time_stamp);
|
||||
|
||||
if (offset != tlvsize)
|
||||
{
|
||||
ok = false;
|
||||
#ifdef RSSERIAL_DEBUG
|
||||
std::cerr << "RsMsgSerialiser::serialiseMsgTagItem() Size Error! " << std::endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
bool RsMsgSerialiser::serialiseTagItem(RsMsgTagType *item, void *data, uint32_t* pktsize)
|
||||
{
|
||||
|
@ -1528,6 +1698,59 @@ bool RsMsgSerialiser::serialiseTagItem(RsMsgTagType *item, void *data, uint32_t*
|
|||
|
||||
return ok;
|
||||
}
|
||||
RsPublicMsgInviteConfigItem* RsMsgSerialiser::deserialisePublicMsgInviteConfigItem(void *data,uint32_t* pktsize)
|
||||
{
|
||||
/* get the type and size */
|
||||
uint32_t rstype = getRsItemId(data);
|
||||
uint32_t rssize = getRsItemSize(data);
|
||||
|
||||
uint32_t offset = 0;
|
||||
|
||||
if ((RS_PKT_VERSION_SERVICE != getRsItemVersion(rstype)) ||
|
||||
(RS_SERVICE_TYPE_MSG != getRsItemService(rstype)) ||
|
||||
(RS_PKT_SUBTYPE_MSG_INVITE != getRsItemSubType(rstype)))
|
||||
{
|
||||
return NULL; /* wrong type */
|
||||
}
|
||||
|
||||
if (*pktsize < rssize) /* check size */
|
||||
return NULL; /* not enough data */
|
||||
|
||||
/* set the packet length */
|
||||
*pktsize = rssize;
|
||||
|
||||
bool ok = true;
|
||||
|
||||
/* ready to load */
|
||||
RsPublicMsgInviteConfigItem *item = new RsPublicMsgInviteConfigItem();
|
||||
item->clear();
|
||||
|
||||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
/* get mandatory parts first */
|
||||
ok &= GetTlvString(data,rssize,&offset,TLV_TYPE_STR_HASH_SHA1,item->hash);
|
||||
|
||||
uint32_t ts ;
|
||||
ok &= getRawUInt32(data, rssize, &offset, &ts) ;
|
||||
item->time_stamp = ts ;
|
||||
|
||||
if (offset != rssize)
|
||||
{
|
||||
/* error */
|
||||
delete item;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!ok)
|
||||
{
|
||||
delete item;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
RsMsgTagType* RsMsgSerialiser::deserialiseTagItem(void *data,uint32_t* pktsize)
|
||||
{
|
||||
|
@ -2006,7 +2229,7 @@ bool RsMsgSerialiser::serialise(RsItem *i, void *data, uint32_t *pktsize)
|
|||
RsMsgParentId* msp;
|
||||
RsMsgTagType *mtt;
|
||||
RsMsgTags *mts;
|
||||
|
||||
RsPublicMsgInviteConfigItem *mtu;
|
||||
|
||||
if (NULL != (mi = dynamic_cast<RsMsgItem *>(i)))
|
||||
{
|
||||
|
@ -2028,6 +2251,10 @@ bool RsMsgSerialiser::serialise(RsItem *i, void *data, uint32_t *pktsize)
|
|||
{
|
||||
return serialiseMsgTagItem(mts, data, pktsize);
|
||||
}
|
||||
else if (NULL != (mtu = dynamic_cast<RsPublicMsgInviteConfigItem *>(i)))
|
||||
{
|
||||
return serialisePublicMsgInviteConfigItem(mtu, data, pktsize);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -2061,6 +2288,9 @@ RsItem* RsMsgSerialiser::deserialise(void *data, uint32_t *pktsize)
|
|||
case RS_PKT_SUBTYPE_MSG_TAG_TYPE:
|
||||
return deserialiseTagItem(data, pktsize);
|
||||
break;
|
||||
case RS_PKT_SUBTYPE_MSG_INVITE:
|
||||
return deserialisePublicMsgInviteConfigItem(data, pktsize);
|
||||
break;
|
||||
case RS_PKT_SUBTYPE_MSG_TAGS:
|
||||
return deserialiseMsgTagItem(data, pktsize);
|
||||
break;
|
||||
|
|
|
@ -64,12 +64,14 @@ const uint8_t RS_PKT_SUBTYPE_CHAT_LOBBY_INVITE = 0x0F ;
|
|||
const uint8_t RS_PKT_SUBTYPE_CHAT_LOBBY_EVENT = 0x10 ;
|
||||
const uint8_t RS_PKT_SUBTYPE_CHAT_LOBBY_LIST_deprecated2 = 0x11 ; // to be removed (deprecated since 02 Dec. 2012)
|
||||
const uint8_t RS_PKT_SUBTYPE_CHAT_LOBBY_LIST = 0x12 ;
|
||||
const uint8_t RS_PKT_SUBTYPE_DISTANT_INVITE_CONFIG = 0x13 ;
|
||||
|
||||
// for defining tags themselves and msg tags
|
||||
const uint8_t RS_PKT_SUBTYPE_MSG_TAG_TYPE = 0x03;
|
||||
const uint8_t RS_PKT_SUBTYPE_MSG_TAGS = 0x04;
|
||||
const uint8_t RS_PKT_SUBTYPE_MSG_SRC_TAG = 0x05;
|
||||
const uint8_t RS_PKT_SUBTYPE_MSG_PARENT_TAG = 0x06;
|
||||
const uint8_t RS_PKT_SUBTYPE_MSG_INVITE = 0x07;
|
||||
|
||||
typedef uint64_t ChatLobbyId ;
|
||||
typedef uint64_t ChatLobbyMsgId ;
|
||||
|
@ -314,6 +316,27 @@ class RsPrivateChatMsgConfigItem: public RsChatItem
|
|||
std::wstring message;
|
||||
uint32_t recvTime;
|
||||
};
|
||||
class RsPrivateChatDistantInviteConfigItem: public RsChatItem
|
||||
{
|
||||
public:
|
||||
RsPrivateChatDistantInviteConfigItem() :RsChatItem(RS_PKT_SUBTYPE_DISTANT_INVITE_CONFIG) {}
|
||||
RsPrivateChatDistantInviteConfigItem(void *data,uint32_t size) ; // deserialization
|
||||
|
||||
virtual ~RsPrivateChatDistantInviteConfigItem() {}
|
||||
virtual void clear() {}
|
||||
virtual std::ostream& print(std::ostream &out, uint16_t indent = 0);
|
||||
|
||||
virtual bool serialise(void *data,uint32_t& size) ; // Isn't it better that items can serialize themselves ?
|
||||
virtual uint32_t serial_size() ; // deserialise is handled using a constructor
|
||||
|
||||
unsigned char aes_key[16] ;
|
||||
std::string hash ;
|
||||
std::string encrypted_radix64_string ;
|
||||
std::string destination_pgp_id ;
|
||||
uint32_t time_of_validity ;
|
||||
uint32_t last_hit_time ;
|
||||
};
|
||||
|
||||
|
||||
// This class contains activity info for the sending peer: active, idle, typing, etc.
|
||||
//
|
||||
|
@ -384,6 +407,9 @@ const uint32_t RS_MSG_FLAGS_PARTIAL = 0x0400;
|
|||
const uint32_t RS_MSG_FLAGS_USER_REQUEST = 0x0800;
|
||||
const uint32_t RS_MSG_FLAGS_FRIEND_RECOMMENDATION = 0x1000;
|
||||
const uint32_t RS_MSG_FLAGS_SYSTEM = RS_MSG_FLAGS_USER_REQUEST | RS_MSG_FLAGS_FRIEND_RECOMMENDATION;
|
||||
const uint32_t RS_MSG_FLAGS_RETURN_RECEPT = 0x2000;
|
||||
const uint32_t RS_MSG_FLAGS_ENCRYPTED = 0x4000;
|
||||
const uint32_t RS_MSG_FLAGS_DISTANT = 0x8000;
|
||||
|
||||
class RsMsgItem: public RsItem
|
||||
{
|
||||
|
@ -474,6 +500,24 @@ public:
|
|||
std::string srcId;
|
||||
|
||||
};
|
||||
class RsPublicMsgInviteConfigItem : public RsItem
|
||||
{
|
||||
|
||||
public:
|
||||
RsPublicMsgInviteConfigItem()
|
||||
: RsItem(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_MSG,
|
||||
RS_PKT_SUBTYPE_MSG_INVITE)
|
||||
{ return;}
|
||||
|
||||
std::ostream &print(std::ostream &out, uint16_t indent = 0);
|
||||
|
||||
virtual ~RsPublicMsgInviteConfigItem() {}
|
||||
virtual void clear();
|
||||
|
||||
std::string hash ;
|
||||
time_t time_stamp ;
|
||||
};
|
||||
|
||||
|
||||
class RsMsgParentId : public RsItem
|
||||
{
|
||||
|
@ -498,45 +542,48 @@ public:
|
|||
class RsMsgSerialiser: public RsSerialType
|
||||
{
|
||||
public:
|
||||
RsMsgSerialiser(bool bConfiguration = false)
|
||||
:RsSerialType(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_MSG), m_bConfiguration (bConfiguration)
|
||||
{ return; }
|
||||
|
||||
RsMsgSerialiser(uint16_t type)
|
||||
:RsSerialType(RS_PKT_VERSION_SERVICE, type), m_bConfiguration (false)
|
||||
{ return; }
|
||||
|
||||
virtual ~RsMsgSerialiser() { return; }
|
||||
|
||||
virtual uint32_t size(RsItem *);
|
||||
virtual bool serialise (RsItem *item, void *data, uint32_t *size);
|
||||
virtual RsItem * deserialise(void *data, uint32_t *size);
|
||||
RsMsgSerialiser(bool bConfiguration = false)
|
||||
:RsSerialType(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_MSG), m_bConfiguration (bConfiguration)
|
||||
{ return; }
|
||||
|
||||
RsMsgSerialiser(uint16_t type)
|
||||
:RsSerialType(RS_PKT_VERSION_SERVICE, type), m_bConfiguration (false)
|
||||
{ return; }
|
||||
|
||||
virtual ~RsMsgSerialiser() { 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 sizeMsgItem(RsMsgItem *);
|
||||
virtual bool serialiseMsgItem (RsMsgItem *item, void *data, uint32_t *size);
|
||||
virtual RsMsgItem *deserialiseMsgItem(void *data, uint32_t *size);
|
||||
virtual uint32_t sizeMsgItem(RsMsgItem *);
|
||||
virtual bool serialiseMsgItem (RsMsgItem *item, void *data, uint32_t *size);
|
||||
virtual RsMsgItem *deserialiseMsgItem(void *data, uint32_t *size);
|
||||
|
||||
virtual uint32_t sizeTagItem(RsMsgTagType *);
|
||||
virtual bool serialiseTagItem (RsMsgTagType *item, void *data, uint32_t *size);
|
||||
virtual RsMsgTagType *deserialiseTagItem(void *data, uint32_t *size);
|
||||
virtual uint32_t sizeTagItem(RsMsgTagType *);
|
||||
virtual bool serialiseTagItem (RsMsgTagType *item, void *data, uint32_t *size);
|
||||
virtual RsMsgTagType *deserialiseTagItem(void *data, uint32_t *size);
|
||||
|
||||
virtual uint32_t sizeMsgTagItem(RsMsgTags *);
|
||||
virtual bool serialiseMsgTagItem (RsMsgTags *item, void *data, uint32_t *size);
|
||||
virtual RsMsgTags *deserialiseMsgTagItem(void *data, uint32_t *size);
|
||||
virtual uint32_t sizeMsgTagItem(RsMsgTags *);
|
||||
virtual bool serialiseMsgTagItem (RsMsgTags *item, void *data, uint32_t *size);
|
||||
virtual RsMsgTags *deserialiseMsgTagItem(void *data, uint32_t *size);
|
||||
|
||||
virtual uint32_t sizeMsgSrcIdItem(RsMsgSrcId *);
|
||||
virtual bool serialiseMsgSrcIdItem (RsMsgSrcId *item, void *data, uint32_t *size);
|
||||
virtual RsMsgSrcId *deserialiseMsgSrcIdItem(void *data, uint32_t *size);
|
||||
virtual uint32_t sizeMsgSrcIdItem(RsMsgSrcId *);
|
||||
virtual bool serialiseMsgSrcIdItem (RsMsgSrcId *item, void *data, uint32_t *size);
|
||||
virtual RsMsgSrcId *deserialiseMsgSrcIdItem(void *data, uint32_t *size);
|
||||
|
||||
virtual uint32_t sizeMsgParentIdItem(RsMsgParentId *);
|
||||
virtual bool serialiseMsgParentIdItem (RsMsgParentId *item, void *data, uint32_t *size);
|
||||
virtual RsMsgParentId *deserialiseMsgParentIdItem(void *data, uint32_t *size);
|
||||
virtual uint32_t sizeMsgParentIdItem(RsMsgParentId *);
|
||||
virtual bool serialiseMsgParentIdItem (RsMsgParentId *item, void *data, uint32_t *size);
|
||||
virtual RsMsgParentId *deserialiseMsgParentIdItem(void *data, uint32_t *size);
|
||||
|
||||
virtual uint32_t sizePublicMsgInviteConfigItem(RsPublicMsgInviteConfigItem *) ;
|
||||
virtual bool serialisePublicMsgInviteConfigItem(RsPublicMsgInviteConfigItem *item, void *data, uint32_t *size);
|
||||
virtual RsPublicMsgInviteConfigItem *deserialisePublicMsgInviteConfigItem(void *data, uint32_t *size);
|
||||
|
||||
bool m_bConfiguration; // is set to true for saving configuration (enables serialising msgId)
|
||||
bool m_bConfiguration; // is set to true for saving configuration (enables serialising msgId)
|
||||
};
|
||||
|
||||
/**************************************************************************/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue