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 <nx/sdk/analytics/helpers/consuming_device_agent.h>
6 
7 #include <nx/kit/json.h>
8 
9 #include "active_settings_builder.h"
10 #include "engine.h"
11 #include "stub_analytics_plugin_settings_ini.h"
12 
13 namespace nx { namespace sdk { class IActiveSettingChangedAction; }} //< private
14 namespace nx { namespace sdk { class IStringMap; }} //< private
15 
16 namespace nx {
17 namespace vms_server_plugins {
18 namespace analytics {
19 namespace stub {
20 namespace settings {
21 
23 {
24 public:
25  DeviceAgent(Engine* engine, const nx::sdk::IDeviceInfo* deviceInfo);
26  virtual ~DeviceAgent() override;
27 
28 protected:
29  virtual void getPluginSideSettings(
30  nx::sdk::Result<const nx::sdk::ISettingsResponse*>* outResult) const override;
31 
32  virtual void doSetNeededMetadataTypes(
33  nx::sdk::Result<void>* outValue,
34  const nx::sdk::analytics::IMetadataTypes* neededMetadataTypes) override;
35 
36  virtual std::string manifestString() const override;
37 
39 
40  virtual void doGetSettingsOnActiveSettingChange(
42  const nx::sdk::IActiveSettingChangedAction* activeSettingChangedAction) override;
43 
44 private:
45  void dumpStringMap(
46  const char* prefix, const char* appendix, const nx::sdk::IStringMap* stringMap) const;
47 
48  void dumpActiveSettingChangedAction(
49  const nx::sdk::IActiveSettingChangedAction* activeSettingChangedAction) const;
50 
51 private:
52  void processActiveSettings(
53  nx::kit::Json* inOutSettingModel,
54  std::map<std::string, std::string>* inOutSettingValue);
55 
56 private:
57  Engine* const m_engine;
58  ActiveSettingsBuilder m_activeSettingsBuilder;
59 };
60 
61 } // namespace settings
62 } // namespace stub
63 } // namespace analytics
64 } // namespace vms_server_plugins
65 } // namespace nx
Definition: i_string_map.h:9
Definition: i_active_setting_changed_action.h:14
Definition: json.cpp:80
Definition: consuming_device_agent.h:36
Definition: i_metadata_types.h:11
Definition: result.h:80
Definition: i_device_info.h:13
Definition: result.h:46
Definition: apple_utils.h:6
virtual nx::sdk::Result< const nx::sdk::ISettingsResponse * > settingsReceived() override
Definition: device_agent.cpp:63