ImagingTools Core SDK
CProductionRepresentationComp.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
8// ACF includes
9#include <istd/IChangeable.h>
10#include <ilog/IMessageConsumer.h>
11#include <icomp/CComponentBase.h>
12
13// ImtCore includes
14#include <imtbase/IEventStatistics.h>
15
16
17namespace imtloggui
18{
19
20
21class CProductionRepresentationComp:
22 public icomp::CComponentBase,
23 virtual public istd::IChangeable
24{
25public:
26 typedef icomp::CComponentBase BaseClass;
27
28 I_BEGIN_COMPONENT(CProductionRepresentationComp)
29 //I_REGISTER_INTERFACE(imtbase::IEventStatistics);
30 I_END_COMPONENT
31
32 CProductionRepresentationComp();
33
34 typedef QMap<qint64, imtbase::IEventStatistics::EventsInfo> Timeline;
35 struct MaxCounters;
36
37 quint64 GetGranularity() const;
38 void SetGranularity(quint64 granularity);
39 const Timeline& GetTimeline() const;
40 quint64 GetMaxCount() const;
41 const MaxCounters& GetMaxCounters() const;
42 void ClearStatistics();
43 void AddMessage(const ilog::IMessageConsumer::MessagePtr& message);
44 qint64 CalculateIntervalBeginTime(qint64 timeStamp);
45
46 // reimplemented (istd::IChangeable)
47 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
48
49public:
50 struct MaxCounters
51 {
52 quint64 oks;
53 quint64 warnings;
54 quint64 noks;
55 quint64 errors;
56 quint64 noksErrors;
57
58 MaxCounters()
59 :oks(0),
60 warnings(0),
61 noks(0),
62 errors(0),
63 noksErrors(0)
64 {
65 }
66 };
67
68private:
69 quint64 m_maxCount;
70 MaxCounters m_maxCounters;
71 qint64 m_granularity;
72 Timeline m_timeline;
73};
74
75
76} // namespace imtloggui
77
78