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;
|
||||
|
||||
#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
|
||||
{
|
||||
static const QString m_clearedFieldsName;
|
||||
|
@@ -12,7 +12,6 @@ public:
|
||||
DbMsgField();
|
||||
DbMsgField(const T &value);
|
||||
|
||||
T &getValue();
|
||||
const T &getValue() const;
|
||||
void setValue(const T &value);
|
||||
|
||||
@@ -38,12 +37,6 @@ DbMsgField<T>::DbMsgField(const T &value) :
|
||||
setHasValue(true);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
T &DbMsgField<T>::getValue()
|
||||
{
|
||||
return m_value;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
const T &DbMsgField<T>::getValue() const
|
||||
{
|
||||
|
@@ -19,49 +19,13 @@ public:
|
||||
MyMessage();
|
||||
MyMessage(const QString &name, const QDate &birthday, const QDateTime &sendTimestamp, int age, double weight);
|
||||
|
||||
QString getName() const { return m_name.getValue(); }
|
||||
void setName(const QString &name) { m_name.setValue(name); }
|
||||
DbMsgField<QString> &nameField() { return m_name; }
|
||||
const DbMsgField<QString> &nameField() const { return m_name; }
|
||||
DbMsgFieldBase &nameFieldBase() { return m_name; }
|
||||
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; }
|
||||
DECLARE_DBFIELD(QString, name, Name)
|
||||
DECLARE_DBFIELD(QDate, birthday, Birthday)
|
||||
DECLARE_DBFIELD(QDateTime, sendTimestamp, SendTimestamp)
|
||||
DECLARE_DBFIELD(int, age, Age)
|
||||
DECLARE_DBFIELD(double, weight, Weight)
|
||||
|
||||
protected:
|
||||
QMap<QString, DbMsgFieldBase*> getFields() 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