27 #ifndef _REC_RPC_SERIALIZATION_SERIALIZABLE_H_ 28 #define _REC_RPC_SERIALIZATION_SERIALIZABLE_H_ 30 #include <QSharedPointer> 31 #include <QDataStream> 41 namespace serialization
45 typedef QSharedPointer< Serializable > SerializablePtr;
46 typedef QSharedPointer< const Serializable > SerializablePtrConst;
76 virtual void serialize( QDataStream& stream )
const;
85 virtual void deserialize( QDataStream& stream );
135 Q_DECLARE_METATYPE( rec::rpc::serialization::SerializablePtr );
136 Q_DECLARE_METATYPE( rec::rpc::serialization::SerializablePtrConst );
139 #define DEFINE_SERIALIZABLE( NAME, TYPE ) \ 141 typedef QSharedPointer< NAME > NAME##Ptr; \ 142 typedef QSharedPointer< const NAME > NAME##PtrConst; 150 #define DEFINE_EMPTY_PARAM( FUNCTIONNAME ) DEFINE_SERIALIZABLE( FUNCTIONNAME##Param, rec::rpc::serialization::Serializable ); 157 #define DEFINE_EMPTY_RESULT( FUNCTIONNAME ) DEFINE_SERIALIZABLE( FUNCTIONNAME##Result, rec::rpc::serialization::Serializable ); 164 #define DEFINE_EMPTY_TOPICDATA( TOPICNAME ) DEFINE_SERIALIZABLE( topic##TOPICNAME##Data, rec::rpc::serialization::Serializable ); 166 #endif //_REC_RPC_SERIALIZATION_SERIALIZABLE_H_
static SerializablePtr empty
Base class for all serializable data.
QDataStream & operator<<(QDataStream &out, const Serializable &data)
Serialize the data and write it into a data stream.
QDataStream & operator>>(QDataStream &in, Serializable &data)
Read data from a data stream and deserialize it.
virtual void deserialize(QDataStream &stream)
virtual void serialize(QDataStream &stream) const