Added macro for easier field declaration
This commit is contained in:
8
main.cpp
8
main.cpp
@@ -1,8 +0,0 @@
|
|||||||
#include <QCoreApplication>
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
QCoreApplication a(argc, argv);
|
|
||||||
|
|
||||||
return a.exec();
|
|
||||||
}
|
|
@@ -8,6 +8,21 @@
|
|||||||
|
|
||||||
class DbMsgFieldBase;
|
class DbMsgFieldBase;
|
||||||
|
|
||||||
|
#define DECLARE_DBFIELD(TYPE, NAME, UPPER_NAME) \
|
||||||
|
private: \
|
||||||
|
DbMsgField<TYPE> m_##NAME;\
|
||||||
|
\
|
||||||
|
public: \
|
||||||
|
TYPE get##UPPER_NAME() const { return m_##NAME.getValue(); } \
|
||||||
|
void set##UPPER_NAME(const TYPE &NAME) { m_##NAME.setValue(NAME); } \
|
||||||
|
bool has##UPPER_NAME() const { return m_##NAME.hasValue(); } \
|
||||||
|
void clear##UPPER_NAME() { m_##NAME.clear(); } \
|
||||||
|
\
|
||||||
|
DbMsgField<TYPE> &NAME##Field() { return m_##NAME; } \
|
||||||
|
const DbMsgField<TYPE> &NAME##Field() const { return m_##NAME; } \
|
||||||
|
DbMsgFieldBase &NAME##FieldBase() { return m_##NAME; } \
|
||||||
|
const DbMsgFieldBase &NAME##FieldBase() const { return m_##NAME; }
|
||||||
|
|
||||||
class MESSAGINGCORELIBSHARED_EXPORT DbMsgBase
|
class MESSAGINGCORELIBSHARED_EXPORT DbMsgBase
|
||||||
{
|
{
|
||||||
static const QString m_clearedFieldsName;
|
static const QString m_clearedFieldsName;
|
||||||
|
@@ -12,7 +12,6 @@ public:
|
|||||||
DbMsgField();
|
DbMsgField();
|
||||||
DbMsgField(const T &value);
|
DbMsgField(const T &value);
|
||||||
|
|
||||||
T &getValue();
|
|
||||||
const T &getValue() const;
|
const T &getValue() const;
|
||||||
void setValue(const T &value);
|
void setValue(const T &value);
|
||||||
|
|
||||||
@@ -38,12 +37,6 @@ DbMsgField<T>::DbMsgField(const T &value) :
|
|||||||
setHasValue(true);
|
setHasValue(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
T &DbMsgField<T>::getValue()
|
|
||||||
{
|
|
||||||
return m_value;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
const T &DbMsgField<T>::getValue() const
|
const T &DbMsgField<T>::getValue() const
|
||||||
{
|
{
|
||||||
|
@@ -19,49 +19,13 @@ public:
|
|||||||
MyMessage();
|
MyMessage();
|
||||||
MyMessage(const QString &name, const QDate &birthday, const QDateTime &sendTimestamp, int age, double weight);
|
MyMessage(const QString &name, const QDate &birthday, const QDateTime &sendTimestamp, int age, double weight);
|
||||||
|
|
||||||
QString getName() const { return m_name.getValue(); }
|
DECLARE_DBFIELD(QString, name, Name)
|
||||||
void setName(const QString &name) { m_name.setValue(name); }
|
DECLARE_DBFIELD(QDate, birthday, Birthday)
|
||||||
DbMsgField<QString> &nameField() { return m_name; }
|
DECLARE_DBFIELD(QDateTime, sendTimestamp, SendTimestamp)
|
||||||
const DbMsgField<QString> &nameField() const { return m_name; }
|
DECLARE_DBFIELD(int, age, Age)
|
||||||
DbMsgFieldBase &nameFieldBase() { return m_name; }
|
DECLARE_DBFIELD(double, weight, Weight)
|
||||||
const DbMsgFieldBase &nameFieldBase() const { return m_name; }
|
|
||||||
|
|
||||||
QDate getBirthday() const { return m_birthday.getValue(); }
|
|
||||||
void setBirthday(const QDate &birthday) { m_birthday.setValue(birthday); }
|
|
||||||
DbMsgField<QDate> &birthdayField() { return m_birthday; }
|
|
||||||
const DbMsgField<QDate> &birthdayField() const { return m_birthday; }
|
|
||||||
DbMsgFieldBase &birthdayFieldBase() { return m_birthday; }
|
|
||||||
const DbMsgFieldBase &birthdayFieldBase() const { return m_birthday; }
|
|
||||||
|
|
||||||
QDateTime getSendTimestamp() const { return m_sendTimestamp.getValue(); }
|
|
||||||
void setSendTimestamp(const QDateTime &sendTimestamp) { m_sendTimestamp.setValue(sendTimestamp); }
|
|
||||||
DbMsgField<QDateTime> &sendTimestampField() { return m_sendTimestamp; }
|
|
||||||
const DbMsgField<QDateTime> &sendTimestampField() const { return m_sendTimestamp; }
|
|
||||||
DbMsgFieldBase &sendTimestampFieldBase() { return m_sendTimestamp; }
|
|
||||||
const DbMsgFieldBase &sendTimestampFieldBase() const { return m_sendTimestamp; }
|
|
||||||
|
|
||||||
int getAge() const { return m_age.getValue(); }
|
|
||||||
void setAge(const int &age) { m_age.setValue(age); }
|
|
||||||
DbMsgField<int> &ageField() { return m_age; }
|
|
||||||
const DbMsgField<int> &ageField() const { return m_age; }
|
|
||||||
DbMsgFieldBase &ageFieldBase() { return m_age; }
|
|
||||||
const DbMsgFieldBase &ageFieldBase() const { return m_age; }
|
|
||||||
|
|
||||||
double getWeight() const { return m_weight.getValue(); }
|
|
||||||
void setWeight(const double &weight) { m_weight.setValue(weight); }
|
|
||||||
DbMsgField<double> &weightField() { return m_weight; }
|
|
||||||
const DbMsgField<double> &weightField() const { return m_weight; }
|
|
||||||
DbMsgFieldBase &weightFieldBase() { return m_weight; }
|
|
||||||
const DbMsgFieldBase &weightFieldBase() const { return m_weight; }
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QMap<QString, DbMsgFieldBase*> getFields() override;
|
QMap<QString, DbMsgFieldBase*> getFields() override;
|
||||||
QMap<QString, const DbMsgFieldBase*> getFields() const override;
|
QMap<QString, const DbMsgFieldBase*> getFields() const override;
|
||||||
|
|
||||||
private:
|
|
||||||
DbMsgField<QString> m_name;
|
|
||||||
DbMsgField<QDate> m_birthday;
|
|
||||||
DbMsgField<QDateTime> m_sendTimestamp;
|
|
||||||
DbMsgField<int> m_age;
|
|
||||||
DbMsgField<double> m_weight;
|
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user