ACF $AcfVersion:0$
CMessage.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QString>
7
8// ACF includes
10#include <iser/IObject.h>
11
12
13namespace ilog
14{
15
16
78 virtual public istd::IInformationProvider,
79 virtual public iser::IObject
80{
81public:
95
119 int id,
120 const QString& text,
121 const QString& source,
122 int flags = 0,
123 const QDateTime* timeStampPtr = NULL);
124
142 int id,
143 const QString& text,
144 const QString& source,
145 int flags = 0,
146 const QDateTime* timeStampPtr = NULL);
147
156
164 virtual void SetText(const QString& text);
165
173 virtual void SetSource(const QString& source);
174
175 // reimplemented (istd::IInformationProvider)
176
184 virtual QDateTime GetInformationTimeStamp() const override;
185
191 virtual InformationCategory GetInformationCategory() const override;
192
198 virtual int GetInformationId() const override;
199
205 virtual QString GetInformationDescription() const override;
206
212 virtual QString GetInformationSource() const override;
213
219 virtual int GetInformationFlags() const override;
220
221 // reimplemented (iser::IObject)
222
230 virtual QByteArray GetFactoryId() const override;
231
232 // reimplemented (iser::ISerializable)
233
245 virtual bool Serialize(iser::IArchive& archive) override;
246
247 // reimplemented (istd::IChangeable)
248
256 virtual bool CopyFrom(const istd::IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
257
267
273 static QByteArray GetMessageTypeId();
274
275protected:
278
280 int m_id;
281
283 QString m_text;
284
286 QString m_source;
287
290
292 QDateTime m_timeStamp;
293};
294
295
296// inline methods
297
298// reimplemented (istd::IInformationProvider)
299
300inline QDateTime CMessage::GetInformationTimeStamp() const
301{
302 return m_timeStamp;
303}
304
305
310
311
313{
314 return m_id;
315}
316
317
319{
320 return m_text;
321}
322
323
324inline QString CMessage::GetInformationSource() const
325{
326 return m_source;
327}
328
329
331{
332 return m_flags;
333}
334
335
336} // namespace ilog
337
338
339
340
Basic implementation of the istd::IInformationProvider interface for log messages.
Definition CMessage.h:80
virtual QDateTime GetInformationTimeStamp() const override
Get the message timestamp.
Definition CMessage.h:300
CMessage()
Default constructor.
virtual bool Serialize(iser::IArchive &archive) override
Serialize or deserialize the message.
virtual bool CopyFrom(const istd::IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
Copy message data from another object.
virtual void SetCategory(istd::IInformationProvider::InformationCategory category)
Set the message category (severity level).
QString m_text
Human-readable message text.
Definition CMessage.h:283
int m_flags
Application-defined flags.
Definition CMessage.h:289
virtual int GetInformationFlags() const override
Get application-defined flags.
Definition CMessage.h:330
virtual QByteArray GetFactoryId() const override
Get the factory identifier for serialization.
virtual int GetInformationId() const override
Get the numeric message identifier.
Definition CMessage.h:312
void SetMessageValues(istd::IInformationProvider::InformationCategory category, int id, const QString &text, const QString &source, int flags=0, const QDateTime *timeStampPtr=NULL)
Set all message properties at once.
virtual istd::TUniqueInterfacePtr< istd::IChangeable > CloneMe(CompatibilityMode mode=CM_WITHOUT_REFS) const override
Create a deep copy of this message.
istd::IInformationProvider::InformationCategory m_category
Message category (severity level)
Definition CMessage.h:277
static QByteArray GetMessageTypeId()
Get the message type identifier for serialization.
virtual InformationCategory GetInformationCategory() const override
Get the message category (severity level).
Definition CMessage.h:306
virtual void SetSource(const QString &source)
Set the message source.
virtual void SetText(const QString &text)
Set the message text.
CMessage(istd::IInformationProvider::InformationCategory category, int id, const QString &text, const QString &source, int flags=0, const QDateTime *timeStampPtr=NULL)
Construct a message with all properties.
virtual QString GetInformationSource() const override
Get the message source identifier.
Definition CMessage.h:324
QDateTime m_timeStamp
Message creation timestamp.
Definition CMessage.h:292
QString m_source
Message source identifier.
Definition CMessage.h:286
virtual QString GetInformationDescription() const override
Get the human-readable message text.
Definition CMessage.h:318
int m_id
Numeric message identifier.
Definition CMessage.h:280
Represents an input/output persistence archive for object serialization.
Definition IArchive.h:164
Common interface for factorisable model objects.
Definition IObject.h:23
Common interface for data model objects, which can be changed.
Definition IChangeable.h:28
CompatibilityMode
Control how relationship betweeen objects are interpreted.
@ CM_WITHOUT_REFS
External references are simple ignored.
Common interface for class providing some basic information object.
InformationCategory
Category of information.
Unique ownership smart pointer for interface types.
#define NULL
Definition istd.h:74
This namespace contains implementations for the logging functionality.