nx_metadata_sdk  1.0
Metadata SDK
device_agent.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 <vector>
6 
7 #include <nx/sdk/analytics/helpers/consuming_device_agent.h>
8 #include <nx/sdk/analytics/i_object_metadata_packet.h>
9 
10 #include "engine.h"
11 
13 
15 {
16 public:
17  DeviceAgent(Engine* engine, const nx::sdk::IDeviceInfo* deviceInfo);
18  virtual ~DeviceAgent() override;
19 
20 protected:
21  virtual std::string manifestString() const override;
22 
23  virtual bool pushCompressedVideoFrame(
24  const nx::sdk::analytics::ICompressedVideoPacket* videoFrame) override;
25 
26  virtual void doSetNeededMetadataTypes(
27  nx::sdk::Result<void>* outValue,
28  const nx::sdk::analytics::IMetadataTypes* neededMetadataTypes) override;
29 
31 
32 private:
33  struct HttpRequestContext
34  {
35  nx::sdk::IUtilityProvider4::HttpDomainName domain =
36  nx::sdk::IUtilityProvider4::HttpDomainName::vms;
37  std::string path = "/rest/v1/system/settings";
38  std::string httpMethod = "GET";
39  std::string mimeType;
40  std::string requestBody;
41  int64_t periodSeconds = 1;
42  };
43 
44 private:
45  int64_t m_lastFrameTimestampUs = 0;
46  int64_t m_lastEventTimestampUs = 0;
47  HttpRequestContext m_requestContext;
48  Engine* const m_engine;
49 };
50 
51 } // namespace nx::vms_server_plugins::analytics::stub::http_requests
Definition: i_compressed_video_packet.h:31
Definition: consuming_device_agent.h:35
virtual nx::sdk::Result< const nx::sdk::ISettingsResponse * > settingsReceived() override
Definition: device_agent.cpp:131
Definition: i_metadata_types.h:10
Definition: result.h:82
Definition: i_device_info.h:13
virtual bool pushCompressedVideoFrame(const nx::sdk::analytics::ICompressedVideoPacket *videoFrame) override
Definition: device_agent.cpp:96
Definition: result.h:48