nx_server_plugin_sdk  1.0
Server Plugin SDK
stream_writer.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/cloud_storage/i_codec_info.h>
6 #include <nx/sdk/cloud_storage/i_stream_writer.h>
7 #include <nx/sdk/helpers/ref_countable.h>
8 #include <nx/sdk/i_list.h>
9 #include <nx/sdk/result.h>
10 
11 #include "data_manager.h"
12 
14 
15 class StreamWriter: public nx::sdk::RefCountable<nx::sdk::cloud_storage::IStreamWriter>
16 {
17 public:
19  const std::shared_ptr<DataManager>& dataManager,
20  const std::string& deviceId,
21  int streamIndex,
22  int64_t startTimeMs,
24  const char* opaqueMetadata);
25 
26  virtual nx::sdk::ErrorCode putData(const nx::sdk::cloud_storage::IMediaDataPacket* packet) override;
27  virtual nx::sdk::ErrorCode close(int64_t durationMs) override;
28  virtual int size() const override;
29 
30 private:
31  std::shared_ptr<DataManager> m_dataManager;
32  std::unique_ptr<WritableMediaFile> m_mediaFile;
33 };
34 
35 } // namespace nx::vms_server_plugins::cloud_storage::stub
virtual nx::sdk::ErrorCode close(int64_t durationMs) override
Definition: stream_writer.cpp:42
Definition: i_media_data_packet.h:17
Definition: data_manager.cpp:36
virtual nx::sdk::ErrorCode putData(const nx::sdk::cloud_storage::IMediaDataPacket *packet) override
Definition: stream_writer.cpp:28
virtual int size() const override
Definition: stream_writer.cpp:56
Definition: ref_countable.h:83