/*! * * 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 main.h * date 10/25/2019 * author Behrouz NematiPour * */ #pragma once // Qt #include // Project // TODO : A singleton parent class needs to be created // to taking care of the Threading, init, quit, and so // TODO : // - We still need to work on threading on other classes // - We need to have a singleton parent class // - Some code has been added to debug can interface (We still have swap frames) #define SINGLETON(vCLASS) \ private: \ explicit vCLASS(QObject *parent = nullptr); \ virtual ~vCLASS() { } \ vCLASS(vCLASS const &) = delete; \ vCLASS & operator = (vCLASS const &) = delete; \ public: \ static vCLASS &I() { \ static vCLASS _instance; \ return _instance; \ } \ //--------------------------------------------------------------------------------// //--------------------------------------------------------------------------------// extern int gFakeInterval; extern QByteArray gFakeData; extern const char*gFakeData_default; extern bool gSendEmptyKeepAwake; extern bool gFakeSeqAtBegin; extern bool gDisableHunhandledReport; //--------------------------------------------------------------------------------// //--------------------------------------------------------------------------------// #define PROPERTY(vTYPE , vVARIABLE , vDEFVALUE) \ Q_PROPERTY(vTYPE vVARIABLE \ READ vVARIABLE \ WRITE vVARIABLE \ NOTIFY vVARIABLE##Changed) \ Q_SIGNALS: \ void vVARIABLE##Changed \ ( const vTYPE & v##vVARIABLE ); \ private: \ vTYPE _##vVARIABLE = vDEFVALUE; \ vTYPE vVARIABLE () const { \ return _##vVARIABLE ; \ } \ void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ if ( _##vVARIABLE != v##vVARIABLE ) { \ _##vVARIABLE = v##vVARIABLE; \ emit vVARIABLE##Changed( _##vVARIABLE ); \ } \ }