EHM DAL 0.2.5
Data abstraction layer for Eastside Hockey Manager
Loading...
Searching...
No Matches
abstract_club_record.h
1#pragma once
2
3// Application headers
4#include "include/data_types/data_type.h"
5#include "include/data_types/date/year.h"
6namespace ehm_dal::database {
7class DatabaseVersion;
8}
9
10// Qt headers
11class QDataStream;
12
13namespace ehm_dal::schema {
14
15// --- Abstract club record item --- //
17{
18public:
20 virtual ~AbstractClubRecord() = default;
21
22 // File i/o
23 virtual bool read(QDataStream &in, ehm_dal::database::DatabaseVersion &version) = 0;
24 virtual bool write(QDataStream &out, ehm_dal::database::DatabaseVersion &version) = 0;
25
26 // Get data
27 QVariant data(const qint32 column, const qint32 role) const;
28
29 // Initialisation
30 virtual bool init() { return false; }
31
32 // Set data
33 bool setData(const qint32 column,
34 const QVariant &value,
35 const qint32 role,
36 std::vector<qint32> &modified_columns);
37
38protected:
41
42private:
43 // Get data
44 virtual QVariant internalData(const qint32 column, const qint32 role) const;
45
46 // Set data
47 virtual bool setInternalData(const qint32 column,
48 const QVariant &value,
49 const qint32 role,
50 std::vector<qint32> &modified_columns);
51};
52} // namespace ehm_dal::schema
The DataType class is a template class for all C++ integral and floating point data types.
Definition: data_type.h:21
The Year class represents a calendar year value. Only qint16 and quint16 are permissible.
Definition: year.h:19
The DatabaseVersion class represents the database version number.
Definition: database_version.h:12
Definition: abstract_club_record.h:17