ImagingTools Core SDK
CTimeRange.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/QDateTime>
7
8// ACF includes
9#include <iser/IArchive.h>
10
11
12namespace imtbase
13{
14
15
16class CTimeRange
17{
18public:
19 CTimeRange();
20 CTimeRange(const QDateTime& begin, const QDateTime& end);
21
22 bool IsNull() const;
23 bool IsClosed() const;
24 bool IsOpened() const;
25 const QDateTime& GetBeginTime() const;
26 const QDateTime& GetEndTime() const;
27 bool SetBeginTime(const QDateTime& time);
28 bool SetEndTime(const QDateTime& time);
29 bool SetTimeRange(const QDateTime& begin, const QDateTime& end);
30 void Clear();
31 bool Contains(const QDateTime& time) const;
32 void Ensure(const QDateTime& time);
33 CTimeRange Intersect(const CTimeRange& other) const;
34
35 bool operator==(const CTimeRange& other) const;
36 bool operator!=(const CTimeRange& other) const;
37
38 bool Serialize(iser::IArchive& archive);
39
40private:
41 QDateTime m_begin;
42 QDateTime m_end;
43};
44
45
46} // namespace imtbase
47
48