stub_analytics_plugin  1.6
Network Optix Video Analytics SDK
common_plugin.h
1 #pragma once
2 
3 #include <string>
4 #include <map>
5 #include <functional>
6 
7 #include <plugins/plugin_tools.h>
8 #include <nx/sdk/utils.h>
9 #include <nx/sdk/common.h>
10 
11 #include "plugin.h"
12 #include "engine.h"
13 #include "objects_metadata_packet.h"
14 
15 namespace nx {
16 namespace sdk {
17 namespace analytics {
18 
23 class CommonPlugin: public nxpt::CommonRefCounter<Plugin>
24 {
25 public:
26  using CreateEngine = std::function<Engine*(Plugin* plugin)>;
27 
34  std::string libName,
35  std::string pluginManifest,
36  CreateEngine createEngine);
37 
38  virtual ~CommonPlugin() override;
39 
40  nxpl::PluginInterface* pluginContainer() const { return m_pluginContainer; }
41 
42 //-------------------------------------------------------------------------------------------------
43 // Not intended to be used by a descendant.
44 
45 public:
46  virtual void* queryInterface(const nxpl::NX_GUID& interfaceId) override;
47 
48  virtual const char* name() const override;
49 
50  virtual void setSettings(const nxpl::Setting* settings, int count) override;
51  virtual void setPluginContainer(nxpl::PluginInterface* pluginContainer) override;
52 
53  virtual const IString* manifest(nx::sdk::Error* outError) const override;
54 
55  virtual Engine* createEngine(Error* outError) override;
56 
57 private:
58  const std::string m_name;
59  const std::string m_manifest;
60 
61  CreateEngine m_createEngine;
62  nxpl::PluginInterface* m_pluginContainer;
63 };
64 
65 } // namespace analytics
66 } // namespace sdk
67 } // namespace nx
Definition: plugin_api.h:65
Base class for every interface, provided by plugin.
Definition: plugin_api.h:38
GUID of plugin interface.
Definition: plugin_api.h:21
Definition: plugin_tools.h:221
Definition: i_string.h:15
Definition: common_plugin.h:23
Definition: debug.cpp:14
CommonPlugin(std::string libName, std::string pluginManifest, CreateEngine createEngine)
Definition: common_plugin.cpp:15
Definition: engine.h:37