nx_server_plugin_sdk  1.0
Server Plugin SDK
i_async_operation_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/interface.h>
6 
7 #include "i_data_list.h"
8 #include "i_device_agent.h"
9 #include "i_engine.h"
10 
11 namespace nx::sdk::cloud_storage {
12 
17 {
18 public:
19  virtual int64_t startTimeMs() const = 0;
20  virtual int64_t durationMs() const = 0;
21  // Pointer to location url should be valid at least while MediaChunkList object
22  // which contains this MediaChunk is alive.
23  virtual const char* locationUrl() const = 0;
24 
25  virtual ~IMediaChunk() = default;
26 };
27 
29  public Interface<IMediaChunkList>,
30  public IDataList
31 {
32 public:
33  virtual const IMediaChunk* get() const = 0;
34 };
35 
39 class IIndexArchive: public Interface<IIndexArchive>
40 {
41 public:
42  virtual const IMediaChunkList* addedChunks() const = 0;
43  virtual const IMediaChunkList* removedChunks() const = 0;
44  virtual const IMediaChunkList* intervalsToRemove() const = 0;
45  virtual int streamIndex() const = 0;
46 };
47 
51 class IDeviceArchive: public Interface<IDeviceArchive>
52 {
53 public:
54  virtual const IList<IIndexArchive>* indexArchive() = 0;
55  virtual IDeviceAgent* deviceAgent() const = 0;
56 };
57 
63 class IAsyncOperationHandler: public Interface<IAsyncOperationHandler>
64 {
65 public:
66  static auto interfaceId() { return makeId("nx::sdk::archive::IAsyncOperationHandler"); }
67 
75  virtual void onArchiveUpdated(
76  const char* engineId,
77  const char* lastSequenceId,
78  nx::sdk::ErrorCode errorCode,
79  const IList<IDeviceArchive>* deviceArchive) const = 0;
80 
81  virtual void onSaveOperationCompleted(
82  const char* engineId,
83  MetadataType metadataType,
84  nx::sdk::ErrorCode errorCode) const = 0;
85 };
86 
87 } // namespace nx::sdk::cloud_storage
Definition: i_async_operation_handler.h:28
Definition: interface.h:48
Definition: i_async_operation_handler.h:51
Definition: i_async_operation_handler.h:16
Definition: i_data_list.h:9
Definition: i_async_operation_handler.h:63
Definition: i_async_operation_handler.h:39
virtual void onArchiveUpdated(const char *engineId, const char *lastSequenceId, nx::sdk::ErrorCode errorCode, const IList< IDeviceArchive > *deviceArchive) const =0
Definition: i_device_agent.h:21
Definition: algorithm.cpp:9
Definition: i_list.h:10
static const InterfaceId * makeId(const char(&charArray)[len])
Definition: i_ref_countable.h:77