/*! * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, * IN PART OR IN WHOLE, * WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file MAbstract.h * \date 7/2/2020 * \author Behrouz NematiPour * */ #pragma once // Qt #include #include // Project namespace Model { class MAbstract { private: const char _delimiter = ','; quint8 _precision = 2; public: enum class Type_Enum { eDatum, eEvent, }; enum class Unit_Enum { eUI, eHD, eDG, }; private: const QMap _typeText { {Type_Enum::eDatum, "D"}, {Type_Enum::eEvent, "E"} }; const QMap _unitText { {Unit_Enum::eUI, "UI"}, {Unit_Enum::eHD, "HD"}, {Unit_Enum::eDG, "DG"} }; public: // the model needs to implement these since each model have different meaning of the bytes from differnet souce(unit). virtual bool fromByteArray(const QByteArray &vByteArray , int *vIndex = nullptr) = 0; virtual Type_Enum typeText ( ) const = 0; virtual Unit_Enum unitText ( ) const = 0; virtual QString infoText ( ) const = 0; virtual QVariantList parameters ( ) const = 0; // Non-virtuals which working with parameters virtual method. void toVariantList(QVariantList &vData) const; QString toString ( ) const; QString description ( ) const; }; }