![]() |
GemaCoreLib
The GeMA Core library
|
Auxiliary structure with global Log configuration. More...


Public Member Functions | |
| GmLogContextData () | |
| Default constructor. | |
Public Member Functions inherited from QObject | |
| virtual const QMetaObject * | metaObject () 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) |
| QThread * | thread () 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) |
| T | 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 ®Exp, 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< QByteArray > | dynamicPropertyNames () const const |
| void | destroyed (QObject *obj) |
| void | objectNameChanged (const QString &objectName) |
| QObject * | parent () const const |
| bool | inherits (const char *className) const const |
| void | deleteLater () |
| Q_DISABLE_COPY (Class) | |
| Q_DISABLE_MOVE (Class) | |
| Q_DISABLE_COPY_MOVE (Class) | |
| T | qobject_cast (QObject *object) |
| T | qobject_cast (const QObject *object) |
| T | qFindChild (const QObject *obj, const QString &name) |
| QList< T > | qFindChildren (const QObject *obj, const QString &name) |
| QList< T > | qFindChildren (const QObject *obj, const QRegExp ®Exp) |
| 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 | |
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() | |
| QStringList * | logList |
| 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 and lastMemoryMeasure. | |
| 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) | |
Additional Inherited Members | |
Public Types inherited from QObject | |
| typedef | QObjectList |
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 | |
| QObject * | sender () 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 | |
Auxiliary structure with global Log configuration.
| QMutex GmLogContextData::logMutex |
A mutex for synchronizing access to the logList, warningCache and lastMemoryMeasure.
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 3 locks, one for each of the protected variables. This can enhance concurrency but doesn't seems really necessary...