Index: sources/main.h =================================================================== diff -u -rb166776048ef9001ff2cb4b69df81a5dff40849a -r56e378f7504701b9e9a9dccaf205aef2fd52c58e --- sources/main.h (.../main.h) (revision b166776048ef9001ff2cb4b69df81a5dff40849a) +++ sources/main.h (.../main.h) (revision 56e378f7504701b9e9a9dccaf205aef2fd52c58e) @@ -1,18 +1,15 @@ /*! * * 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. - + * \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 + * \file main.h + * \author (last) Behrouz NematiPour + * \date (last) 30-Jul-2020 + * \author (original) Behrouz NematiPour + * \date (original) 28-Oct-2019 * */ #pragma once @@ -47,52 +44,124 @@ extern const char*gFakeData_default; extern bool gSendEmptyKeepAwake; extern bool gFakeSeqAtBegin; -extern bool gDisableHunhandledReport; +extern bool gDisableUnhandledReport; +extern bool gDisableTimeout; //--------------------------------------------------------------------------------// //--------------------------------------------------------------------------------// -#define PROPERTY(vTYPE , vVARIABLE , vDEFVALUE, vALWAYSEMIT ) \ - 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 ) { \ - static bool init = false; \ - if ( vALWAYSEMIT \ - || ! init \ - || _##vVARIABLE != v##vVARIABLE ) { \ - init = true; \ - _##vVARIABLE = v##vVARIABLE; \ - emit vVARIABLE##Changed( _##vVARIABLE ); \ - } \ +#define DEBUG_PROPERTY_CHANGED(vVARIABLE) //qDebug() << "#" << #vVARIABLE << v##vVARIABLE; +//--------------------------------------------------------------------------------// +#define PROPERTY_SLOT( vTYPE , vVARIABLE ) \ + protected : \ + void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ + static bool init = false; \ + if ( !init || _##vVARIABLE != v##vVARIABLE ) { \ + DEBUG_PROPERTY_CHANGED(vVARIABLE) \ + init = true; \ + _##vVARIABLE = v##vVARIABLE; \ + emit vVARIABLE##Changed( _##vVARIABLE ); \ + } \ } //--------------------------------------------------------------------------------// +#define TRIGGER_SLOT( vTYPE , vVARIABLE ) \ + protected: \ + void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ + DEBUG_PROPERTY_CHANGED(vVARIABLE) \ + _##vVARIABLE = v##vVARIABLE; \ + emit vVARIABLE##Triggered( _##vVARIABLE ); \ + } //--------------------------------------------------------------------------------// +#define PROPERTY_BASE(vTYPE , vVARIABLE , vDEFVALUE, vSIGNAL) \ + Q_PROPERTY( vTYPE vVARIABLE \ + READ vVARIABLE \ + WRITE vVARIABLE \ + NOTIFY vVARIABLE##vSIGNAL) \ + Q_SIGNALS: \ + void vVARIABLE##vSIGNAL( const vTYPE & v##vVARIABLE ); \ + private: \ + vTYPE _##vVARIABLE = vDEFVALUE; \ + protected: \ + vTYPE vVARIABLE () const { \ + return _##vVARIABLE ; \ + } +//--------------------------------------------------------------------------------// +#define PROPERTY( vTYPE , vVARIABLE , vDEFVALUE ) \ + PROPERTY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Changed ) \ + PROPERTY_SLOT( vTYPE , vVARIABLE) +//--------------------------------------------------------------------------------// +#define TRIGGER( vTYPE , vVARIABLE , vDEFVALUE ) \ + PROPERTY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Triggered) \ + TRIGGER_SLOT( vTYPE , vVARIABLE) +//--------------------------------------------------------------------------------// +//--------------------------------------------------------------------------------// +#define ACTION_VIEW_CONNECTION(vTYPE) \ + connect(&_GuiController, SIGNAL(didActionReceive(const vTYPE &)), \ + this, SLOT( onActionReceive(const vTYPE &))); +//--------------------------------------------------------------------------------// +#define ADJUST_VIEW_CONNECTION(vTYPE) \ + connect( this, SIGNAL(didAdjustment (const vTYPE &)), \ + &_GuiController, SLOT( doAdjustment (const vTYPE &))); +//--------------------------------------------------------------------------------// +//--------------------------------------------------------------------------------// +#define ACTION_METHOD_BRIDGE_CONNECTION(vMETHOD, vSOURCE, vTYPE) \ + connect(&vSOURCE, SIGNAL(did##vMETHOD(const vTYPE &)), \ + this , SLOT( on##vMETHOD(const vTYPE &))); +//--------------------------------------------------------------------------------// #define ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, vTYPE) \ - connect(&vSOURCE, SIGNAL(didActionReceive(const vTYPE &)), \ - this , SLOT( onActionReceive(const vTYPE &))); + ACTION_METHOD_BRIDGE_CONNECTION(ActionReceive, vSOURCE, vTYPE) //--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, vTYPE) \ + ACTION_METHOD_BRIDGE_CONNECTION(Adjustment , vSOURCE, vTYPE) +//--------------------------------------------------------------------------------// #define ACTION_RECEIVE_PRIVATE_SLOT(vTYPE) \ private Q_SLOTS: \ void onActionReceive (const vTYPE &vData) { \ emit didActionReceive(vData); \ } //--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_PRIVATE_SLOT_DEFINITION(vTYPE) \ +private Q_SLOTS: \ + void onAdjustment (const vTYPE &vData); +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_PRIVATE_SLOT(vTYPE) \ +private Q_SLOTS: \ + void onAdjustment (const vTYPE &vData) { \ + emit didAdjustment( vData); \ + } +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_PUBLIC_SLOT(vTYPE) \ +public Q_SLOTS: \ + void doAdjustment (const vTYPE &vData) { \ + emit didAdjustment( vData); \ + } +//--------------------------------------------------------------------------------// #define ACTION_RECEIVE_SIGNAL(vTYPE) \ Q_SIGNALS: \ void didActionReceive (const vTYPE &vData); //--------------------------------------------------------------------------------// +#define ACTION_TRANSMT_SIGNAL(vTYPE) \ +Q_SIGNALS: \ + void didActionTransmit(const vTYPE &vData); +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_SIGNAL(vTYPE) \ +Q_SIGNALS: \ + void didAdjustment (const vTYPE &vData); +//--------------------------------------------------------------------------------// #define ACTION_RECEIVE_BRIDGE_DEFINITION(vTYPE) \ ACTION_RECEIVE_PRIVATE_SLOT (vTYPE) \ ACTION_RECEIVE_SIGNAL (vTYPE) //--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT(vTYPE) \ + ADJUST_TRANSMT_PRIVATE_SLOT_DEFINITION (vTYPE) \ + ADJUST_TRANSMT_SIGNAL (vTYPE) +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_BRIDGE_DEFINITION(vTYPE) \ + ADJUST_TRANSMT_PRIVATE_SLOT (vTYPE) \ + ADJUST_TRANSMT_SIGNAL (vTYPE) +//--------------------------------------------------------------------------------// +#define ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC(vTYPE) \ + ADJUST_TRANSMT_PUBLIC_SLOT (vTYPE) \ + ADJUST_TRANSMT_SIGNAL (vTYPE) +//--------------------------------------------------------------------------------// #define REGISTER_METATYPE(vTYPE) \ qRegisterMetaType < vTYPE > (#vTYPE); //--------------------------------------------------------------------------------//