ImagingTools Core SDK
CMessagesReader.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QMap>
7#include <QtCore/QString>
8
9// ACF includes
10#include <ilog/IMessageConsumer.h>
11#include <istd/TSmartPtr.h>
12
13// ImtCore includes
14#include <imtfile/IFileCompression.h>
15#include <imtlog/IEventProvider.h>
16#include <imtlog/CEventContainer.h>
17
18
19namespace imtlog
20{
21
22
23class CMessagesReader: virtual public istd::IPolymorphic
24{
25public:
26 typedef istd::TSmartPtr<CEventContainer> EventContainerPtr;
27 typedef QList<EventContainerPtr> EventContainerList;
28 typedef istd::TSmartPtr<EventContainerList> EventContainerListPtr;
29
30 CMessagesReader(
31 const QString& dir,
32 const QString& containerExtension,
33 const QString& archiveExtension,
34 const iser::IVersionInfo* versionInfoPtr,
35 const imtfile::IFileCompression* compressorPtr,
36 ilog::IMessageConsumer* logPtr);
37
38 imtbase::CTimeRange ReadTimeRange() const;
39 EventContainerListPtr ReadContainers(const imtbase::CTimeRange& timeRange) const;
40 virtual void Cancel();
41
42private:
43 void SendErrorMessage(const QString& message) const;
44
45private:
46 QMap<QDate, QString> GetDirMap(const QString& dirPath) const;
47 QMap<QDateTime, QString> GetFileMap(const QString& dirPath) const;
48 EventContainerPtr ImportContainer(const QString& filePath) const;
49
50private:
51 const QString m_dir;
52 const QString m_containerExtension;
53 const QString m_archiveExtension;
54 const iser::IVersionInfo* m_versionInfoPtr;
55 const imtfile::IFileCompression* m_compressorPtr;
56 bool m_isCanceled;
57
58 ilog::IMessageConsumer* m_logPtr;
59};
60
61
62} // namespace imtlog
63
64