27 #ifndef _REC_RPC_SERIALIZATION_PRIMITIVE_H_ 28 #define _REC_RPC_SERIALIZATION_PRIMITIVE_H_ 36 namespace serialization
45 template<
typename T >
66 void setValue(
const T& value );
85 operator const T&()
const;
93 void serialize( QDataStream& )
const;
94 void deserialize( QDataStream& );
97 template<
typename T >
103 template<
typename T >
109 template<
typename T >
115 template<
typename T >
121 template<
typename T >
127 template<
typename T >
133 template<
typename T >
139 template<
typename T >
145 template<
typename T >
151 template<
typename T >
158 template<
typename T >
161 typedef QSharedPointer< Primitive< T > > Type;
179 #define DECLARE_PRIMITIVE_MEMBER( DATATYPE, NAME ) \ 181 rec::rpc::serialization::PrimitivePtr< DATATYPE >::Type _##NAME; \ 182 void create_##NAME() { _##NAME = rec::rpc::serialization::PrimitivePtr< DATATYPE >::Type( new rec::rpc::serialization::Primitive< DATATYPE > ); } \ 184 DATATYPE& NAME() { return *_##NAME; } \ 185 const DATATYPE& NAME() const { return *_##NAME; } \ 186 void set##NAME( const DATATYPE& value ) { _##NAME->setValue( value ); } 194 #define DEFINE_PRIMITIVE_PARAM( FUNCTIONNAME, DATATYPE ) DEFINE_SERIALIZABLE( FUNCTIONNAME##Param, rec::rpc::serialization::Primitive< DATATYPE > ); 202 #define DEFINE_PRIMITIVE_RESULT( FUNCTIONNAME, DATATYPE ) DEFINE_SERIALIZABLE( FUNCTIONNAME##Result, rec::rpc::serialization::Primitive< DATATYPE > ); 210 #define DEFINE_PRIMITIVE_TOPICDATA( TOPICNAME, DATATYPE ) DEFINE_SERIALIZABLE( topic##TOPICNAME##Data, rec::rpc::serialization::Primitive< DATATYPE > ); 212 #endif //_REC_RPC_SERIALIZATION_PRIMITIVE_H_
void setValue(const T &value)
Modify the stored value.
const T & ref() const
Access the stored value.
#define REC_RPC_VISIBILITY_DEFAULT
T value() const
Retrieve the stored value.
Base class for all serializable data.
Serialization class for primitive objects and values.