00001 00027 #ifndef UNSIGNED_H 00028 #define UNSIGNED_H 00029 00030 #include <QDBusArgument> 00031 #include <datatypes/timedunsigned.h> 00032 00036 class Unsigned : public QObject 00037 { 00038 Q_OBJECT 00039 Q_PROPERTY(int x READ x) 00040 00041 public: 00042 00046 Unsigned() {} 00047 00053 Unsigned(const TimedUnsigned& unsignedData); 00054 00060 Unsigned(const Unsigned& data); 00061 00066 const TimedUnsigned& UnsignedData() const { return data_; } 00067 00072 int x() const { return data_.value_; } 00073 00079 Unsigned& operator=(const Unsigned& origin) 00080 { 00081 data_ = origin.UnsignedData(); 00082 return *this; 00083 } 00084 00091 bool operator==(const Unsigned& right) const 00092 { 00093 TimedUnsigned rdata = right.UnsignedData(); 00094 return (data_.value_ == rdata.value_ && 00095 data_.timestamp_ == rdata.timestamp_); 00096 } 00097 00098 private: 00099 TimedUnsigned data_; 00101 friend const QDBusArgument &operator>>(const QDBusArgument &argument, Unsigned& data); 00102 }; 00103 00104 Q_DECLARE_METATYPE( Unsigned ) 00105 00106 00113 inline QDBusArgument &operator<<(QDBusArgument &argument, const Unsigned &data) 00114 { 00115 argument.beginStructure(); 00116 argument << data.UnsignedData().timestamp_ << data.UnsignedData().value_; 00117 argument.endStructure(); 00118 return argument; 00119 } 00120 00128 inline const QDBusArgument &operator>>(const QDBusArgument &argument, Unsigned &data) 00129 { 00130 argument.beginStructure(); 00131 argument >> data.data_.timestamp_ >> data.data_.value_; 00132 argument.endStructure(); 00133 return argument; 00134 } 00135 00136 #endif // UNSIGNED_H