GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
GmResultsTimeManager Class Reference

Collects all the time data from several TimeSet objects, controlling the next time "moments" (time, iterations, etc) where a results rule should be "activated". More...

#include <gmResultsTimeManager.h>

Inheritance diagram for GmResultsTimeManager:
Collaboration diagram for GmResultsTimeManager:

Classes

struct  AttributeData
 
struct  AttributeTimeSetData
 

Public Member Functions

 GmResultsTimeManager (const GmResultsData *resData, const GmLogCategory &logger)
 Constructor.
 
bool execRules (const QStringList &ruleIds, bool monitor, bool printHeader, bool timeManagerPrint)
 Execute rules that are ready to run according to the current attribute values. If ruleIds is not empty, only the listed rules will be possibly executed. If monitor is false, monitor rules won't be executed. The printHedaer flag defines if we should print the Eval set header or not The timeManagerPrint flag asks the time manager to print to the logger some extra information on its internal structure. For regression tests purpose only. Returns false on errors (messages are printed with the result logger on errors).
 
void resetEvalAttrValue (int attrId=-1)
 Asks the time manager to reset the current attribute values used for time set evaluation, so that the time set execution rule times evaluation starts again. An optional attribute id specifies that only that attribute value should be reset. If equal to -1, all attributes will be reset.
 
double nextEvalAttrValue (int attrId, GmResultsTimeManagerEvalMode mode=GM_RTM_ALL, QString timeSet="") const
 Returns the next attribute value where a result rule will be activated. Receives as parameter the attribute id. The mode parameter defines wether intervals, moments or both tables will be queried. A third optional parameter can filter the result by a time set name if the attribute is tied to more than one time set. Returns DBL_MAX if there is no next value for this attribute (on this time set, if given).
 
double lastEvalAttrValue (int attrId, GmResultsTimeManagerEvalMode mode=GM_RTM_ALL, QString timeSet="") const
 Returns the last attribute value where a result rule will be activated. Receives as parameter the attribute id. The mode parameter defines wether intervals, moments or both tables will be queried. A third optional parameter can filter the result by a time set name if the attribute is tied to more than one time set. Returns DBL_MAX if there is none for this attribute or if the interval is open for the attribute (on this time set, if given).
 
bool ruleDone (QString ruleId) const
 Returns true if the given rule can not be activated anymore due to the current values of the attributes that can trigger the rule being greater than all the configured intervals and moments for the time sets attached to that rule.
 
void print () const
 Prints the consolidated attribute data tables.
 
- Public Member Functions inherited from QObject
virtual const QMetaObjectmetaObject () const const
 
 QObject (QObject *parent)
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
QString objectName () const const
 
void setObjectName (const QString &name)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
bool signalsBlocked () const const
 
bool blockSignals (bool block)
 
QThreadthread () const const
 
void moveToThread (QThread *targetThread)
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
void killTimer (int id)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
const QObjectListchildren () const const
 
void setParent (QObject *parent)
 
void installEventFilter (QObject *filterObj)
 
void removeEventFilter (QObject *obj)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectTree ()
 
void dumpObjectInfo ()
 
void dumpObjectTree () const const
 
void dumpObjectInfo () const const
 
bool setProperty (const char *name, const QVariant &value)
 
QVariant property (const char *name) const const
 
QList< QByteArraydynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
 Q_CLASSINFO (Name, Value)
 
 Q_INTERFACES (...)
 
 Q_PROPERTY (...)
 
 Q_ENUMS (...)
 
 Q_FLAGS (...)
 
 Q_ENUM (...)
 
 Q_FLAG (...)
 
 Q_ENUM_NS (...)
 
 Q_FLAG_NS (...)
 
 Q_OBJECT Q_OBJECT
 
 Q_GADGET Q_GADGET
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SLOTS Q_SLOTS
 
 Q_SLOT Q_SLOT
 
 Q_EMIT Q_EMIT
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 

Private Slots

void attributeUnregistered (int id, QString name)
 Slot called when an attribute is unregistered from the attribute manager. Clears time set tables from this attribute.
 

Private Member Functions

 Q_DISABLE_COPY (GmResultsTimeManager)
 
void updateAttributeData (int index)
 Setups the interval and moment information once an attribute has been registered.
 
void clearAttributeData (int index)
 Clears the interval and moment information once an attribute has been unregistered.
 
void updateControlData (AttributeTimeSetData &tsd, double attrValue)
 Updates the interval and moment control fields due to the current attribute value.
 

Private Attributes

const GmLogCategory_logger
 The logger for error messages.
 
GmAttributeResultsManager_attrManager
 The attribute manager used to query attribute values.
 
QVector< AttributeData_data
 Our consolidated "time" table with data per attribute / time set.
 
QMap< int, int > _attrIndexMap
 Maps attribute ids to their index in _data.
 
QMap< QString, QVector< int > > _ruleAttrMap
 An auxiliar map that, given a rule name, stores the indices in _data of the attributes that can spawn that rule.
 
bool _regChanged
 An auxiliar flag tracking changes on AttributeData _id values. Used for regression test printing purposes.
 

Additional Inherited Members

- Public Types inherited from QObject
typedef  QObjectList
 
- Static Public Member Functions inherited from QObject
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
- Protected Member Functions inherited from QObject
QObjectsender () const const
 
int senderSignalIndex () const const
 
int receivers (const char *signal) const const
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
virtual void timerEvent (QTimerEvent *event)
 
virtual void childEvent (QChildEvent *event)
 
virtual void customEvent (QEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
- Properties inherited from QObject
 objectName
 

Detailed Description

Collects all the time data from several TimeSet objects, controlling the next time "moments" (time, iterations, etc) where a results rule should be "activated".


The documentation for this class was generated from the following files: