GemaCoreLib
The GeMA Core library
Public Member Functions | Public Attributes | List of all members
GmLogContextData Struct Reference

Auxiliary structure with global Log configuration. More...

Inheritance diagram for GmLogContextData:
Inheritance graph
[legend]
Collaboration diagram for GmLogContextData:
Collaboration graph
[legend]

Public Member Functions

 GmLogContextData ()
 Default constructor.
 
- Public Member Functions inherited from QObject
virtual const QMetaObjectmetaObject () const const
 
virtual void * qt_metacast (const char *)
 
virtual int qt_metacall (QMetaObject::Call, int, void **)
 
 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 QObjectList & children () 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 ()
 

Public Attributes

bool logToConsole
 Should we log to the console?
 
bool logToSignal
 Should we emit a signal at each logged message?
 
FILE * logFile
 Log file handle if logging to files.
 
QStringList internalLogList
 Internal storage for log messages if the user didn't supplied his own target in GmSetStringListLogging()
 
QStringListlogList
 If non NULL, log messages will be added to this list. Can point to a user list or to internalLogList.
 
bool fileFlush
 Flush at every file write?
 
bool showLogger
 Should we show the logger name before each message?
 
bool showTid
 Should we show the thread id before each message?
 
bool hideRepeatedWarnings
 Should we skip warnings already emitted?
 
bool decorateValueTables
 Should we add tags decorating value tables to aid regression tests? Mode stored in the logger and used by the code printing tables...
 
QtMemUsage lastMemoryMeasure
 Global storing the last memory measured by a call to QtGetCurrentMemoryUsage()
 
GmLogCategory panicLogger
 The global "panic" logger, usually used to report memory allocation fails deep inside class structures with no easy access to another logger.
 
QMutex logMutex
 A mutex for synchronizing access to the logList, warningCache, lastMemoryMeasure and timeStatisticsMap. More...
 
QList< QPair< QString, bool > > rulesList
 List of rules defining which logging levels are active.
 
QSet< quint32 > warningCache
 A cache to store already emitted warning messages when hideRepeatedWarnings is set to true. The stored value is a hash code of the given string. We DON'T store the strings, since the probability of colisions is minimum, the cost of storing every message can be high (imagine a warning that includes a node number and is emmited for every node in a million nodes mesh...) and the result of a collision, that probably will never happend, has minimum impact (the worst that can happend is not showing a warning message)
 
QMap< QString, QPair< qint64, unsigned > > timeStatisticsMap
 A map collecting time statistics grouped by the message given to the GmTimeMsg constructor. Each pair contains the cumulative time and the number of times that GmTimeMsg wass called for the given message key.
 

Additional Inherited Members

- Signals inherited from GmLogSignalEmitter
void logMessage (int level, QString msg)
 
- 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

Auxiliary structure with global Log configuration.

Member Data Documentation

◆ logMutex

QMutex GmLogContextData::logMutex

A mutex for synchronizing access to the logList, warningCache, lastMemoryMeasure and timeStatisticsMap.

Keep in mind that access to the console and to the logFile don't need to be protected as fprintf() is thread safe in both Windows and GCC (required by POSIX standard)

In princple, this single lock can be split in 4 locks, one for each of the protected variables. This can enhance concurrency but doesn't seems really necessary...


The documentation for this struct was generated from the following file: