nx_cloud_storage_sdk  1.0
Cloud Storage SDK
i_archive_update_handler.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 <nx/sdk/i_list.h>
6 #include <nx/sdk/interface.h>
7 
8 #include "i_device_agent.h"
9 #include "i_time_periods.h"
10 
11 namespace nx::sdk::cloud_storage {
12 
16 class IIndexArchive: public Interface<IIndexArchive>
17 {
18 public:
19  virtual const ITimePeriods* addedTimePeriods() const = 0;
20  virtual const ITimePeriods* removedTimePeriods() const = 0;
21  virtual int streamIndex() const = 0;
22 };
23 
27 class IDeviceArchive: public Interface<IDeviceArchive>
28 {
29 public:
30  virtual IList<IIndexArchive>* indexArchive() = 0;
31  virtual IDeviceAgent* deviceAgent() const = 0;
32 };
33 
39 class IArchiveUpdateHandler: public Interface<IArchiveUpdateHandler>
40 {
41 public:
42  static constexpr auto interfaceId()
43  {
44  return makeId("nx::sdk::archive::IArchiveUpdateHandler");
45  }
46 
54  virtual void onArchiveUpdated(
55  const char* engineId,
56  nx::sdk::ErrorCode errorCode,
57  const IList<IDeviceArchive>* deviceArchive) const = 0;
58 };
59 
60 } // namespace nx::sdk::cloud_storage
Definition: interface.h:48
Definition: i_archive_update_handler.h:39
virtual void onArchiveUpdated(const char *engineId, nx::sdk::ErrorCode errorCode, const IList< IDeviceArchive > *deviceArchive) const =0
Definition: i_archive_update_handler.h:27
Definition: i_archive_update_handler.h:16
Definition: i_device_agent.h:21
Definition: i_time_periods.h:13
Definition: algorithm.cpp:8
static constexpr const InterfaceId * makeId(const char(&charArray)[len])
Definition: i_ref_countable.h:76
Definition: i_list.h:10