6#include <QtCore/QDebug>
7#include <QtCore/QQueue>
8#include <QtCore/QTimer>
11#include <iser/IVersionInfo.h>
12#include <ifile/IFileNameParam.h>
13#include <ilog/IMessageContainer.h>
14#include <ilog/TLoggerCompWrap.h>
15#include <ilog/TMessageDelegatorComp.h>
18#include <imtbase/ITimeRangeProvider.h>
19#include <imtfile/IFileCompression.h>
20#include <imtlog/IEventProvider.h>
21#include <imtlog/CEventContainer.h>
22#include <imtlog/CMessagesReader.h>
23#include <imtlog/CMessagesReadJobController.h>
24#include <imtlog/CWorkerBase.h>
32class CMessagesController:
34 virtual public ilog::CLoggerBase,
35 virtual public ilog::IMessageConsumer,
36 virtual public imtbase::ITimeRangeProvider
40 typedef ilog::CLoggerBase BaseClass;
44 quint32 maxContainerMessageCount,
45 quint16 containerSavingPeriod,
46 quint16 containerCachingTime,
48 QString containerExtension,
49 QString archiveExtension,
50 iser::IVersionInfo* versionInfoPtr,
51 imtfile::IFileCompression* compressorPtr,
52 ilog::IMessageConsumer* logPtr);
54 void OnSystemShutdown();
57 const IEventFilter* filterPtr,
58 const IMessageFilterParams* filterParamsPtr)
const;
60 bool IsJobExists(
const QByteArray& jobId)
const;
61 bool TakeJobResult(
const QByteArray& jobId, CMessagesReader::EventContainerPtr& resultEvents)
const;
64 virtual imtbase::CTimeRange GetTimeRange()
const override;
67 virtual bool IsMessageSupported(
68 int messageCategory = -1,
70 const istd::IInformationProvider* messagePtr = NULL)
const override;
71 virtual void AddMessage(
const MessagePtr& messagePtr)
override;
75 void ReadFinished(QByteArray requestId);
80 void OnJobFinished(
const QByteArray& jobId);
101 CMessagesReader::EventContainerPtr containerPtr;
104 class Writer:
public CWorkerBase
108 CMessagesController& parent,
110 QString containerExtension,
111 QString archiveExtension,
112 iser::IVersionInfo* versionInfoPtr,
113 imtfile::IFileCompression* compressorPtr);
117 virtual void run()
override;
120 CMessagesController& m_parent;
122 QString m_containerExtension;
123 QString m_archiveExtension;
124 iser::IVersionInfo* m_versionInfoPtr;
125 imtfile::IFileCompression* m_compressorPtr;
129 ControllerState m_state;
131 int m_maxContainerMessageCount;
132 quint16 m_containerSavingPeriod;
133 quint16 m_containerCachingTime;
138 mutable imtbase::CTimeRange m_archiveTimeRange;
140 QList<QueueItem> m_workingQueue;
141 QMutex m_workingQueueMutex;
143 CMessagesReader::EventContainerList m_writingQueue;
144 QMutex m_writingQueueMutex;
146 QList<QueueItem> m_cache;
149 mutable CMessagesReadJobController m_readJobController;
150 CMessagesReader m_messagesReader;
151 int m_supportedMessageId;