QtFit  0.1
Internal library development documentation
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
abstractdatamessage_p.h
Go to the documentation of this file.
1 /*
2  Copyright 2021 Paul Colby
3 
4  This file is part of QtFit.
5 
6  QtFit is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  QtFit is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with QtFit. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 /*!
21  * \file
22  * Declares the AbstractDataMessagePrivate class.
23  */
24 
25 #ifndef QTFIT_ABSTRACTDATAMESSAGE_P_H
26 #define QTFIT_ABSTRACTDATAMESSAGE_P_H
27 
28 #include "QtFit_global.h"
29 #include "types.h"
30 #include "types_p.h"
31 
33 
35 
37 
38 public:
39  MesgNum globalMessageNumber; ///< FIT Globla Message Number for this FIT Data Message.
40 
41  AbstractDataMessagePrivate() = delete;
44 
45  bool setFields(const DataDefinition * const defn, const QByteArray &record);
46 
47 protected:
48  AbstractDataMessage * const q_ptr; ///< Internal q-pointer.
49 
50  virtual bool setField(const int fieldId, const QByteArray &data,
51  const FitBaseType baseType, const bool bigEndian) = 0;
52 
53  bool verify(const QByteArray &data, const FitBaseType actualType, const int expectedSize,
54  const FitBaseType expectedType, const char *messageFieldName);
55 
56 private:
57  Q_DECLARE_PUBLIC(AbstractDataMessage)
58  Q_DISABLE_COPY(AbstractDataMessagePrivate)
59 
60 };
61 
63 
64 #endif // QTFIT_ABSTRACTDATAMESSAGE_P_H
Global QtFit library macros.
#define QTFIT_END_NAMESPACE
Macro for ending the QtFit library's top-most namespace (if one is defined).
Definition: QtFit_global.h:78
#define QTFIT_BEGIN_NAMESPACE
Macro for starting the QtFit library's top-most namespace (if one is defined).
Definition: QtFit_global.h:77
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
bool verify(const QByteArray &data, const FitBaseType actualType, const int expectedSize, const FitBaseType expectedType, const char *messageFieldName)
bool setFields(const DataDefinition *const defn, const QByteArray &record)
virtual bool setField(const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian)=0
AbstractDataMessage *const q_ptr
Internal q-pointer.
The AbstractDataMessage class is the polymorphic base class for all FIT Data Message classes.
Data Message definition.
Definition: types_p.h:83
Types defined by the ANT+ FIT SDK.
FitBaseType
Garmin FIT FitBaseType type.
Definition: types.h:3388
MesgNum
Garmin FIT MesgNum type.
Definition: types.h:91
Internal types used by QtFit classes.