nx_cloud_storage_sdk  1.0
Cloud Storage SDK
time_periods.h
1 // Copyright 2018-present Network Optix, Inc. Licensed under MPL 2.0: www.mozilla.org/MPL/2.0/
2 
3 #pragma once
4 
5 #include <chrono>
6 #include <vector>
7 
8 #include <nx/sdk/cloud_storage/i_time_periods.h>
9 #include <nx/sdk/helpers/ref_countable.h>
10 
11 #include "data.h"
12 
13 namespace nx::sdk::cloud_storage {
14 
15 class TimePeriods: public nx::sdk::RefCountable<ITimePeriods>
16 {
17 public:
18  TimePeriods() = default;
19  TimePeriods(const TimePeriodList& periods);
20 
21  void setPeriods(const TimePeriodList& timePeriods);
22 
23  virtual void goToBeginning() const override;
24  virtual bool next() const override;
25  virtual bool atEnd() const override;
26  virtual bool get(int64_t* outStartUs, int64_t* outEndUs) const override;
27 
28 private:
29  mutable TimePeriodList m_periods;
30  mutable TimePeriodList::const_iterator m_it;
31 };
32 
33 } // namespace nx::sdk::cloud_storage
Definition: time_periods.h:15
Definition: algorithm.cpp:8
Definition: ref_countable.h:83