nx_metadata_sdk 1.0 Metadata SDK

Public Types | Public Member Functions | Protected Member Functions | List of all members
nx::sdk::analytics::Plugin Class Reference

`#include <plugin.h>`

Inheritance diagram for nx::sdk::analytics::Plugin:

## Public Types
using | CreateEngine = std::function< IEngine *(Plugin *plugin)>
Public Types inherited from nx::sdk::IPlugin
typedef IPlugin *(* | EntryPointFunc) ()
typedef IPlugin *(* | MultiEntryPointFunc) (int instanceIndex)

## Public Member Functions
| Plugin (std::string pluginManifest, CreateEngine createEngine)
Ptr< IUtilityProvider > | utilityProvider () const
virtual std::string | instanceId () const
virtual void | setUtilityProvider (IUtilityProvider *utilityProvider) override
Public Member Functions inherited from nx::sdk::RefCountable< IPlugin >
| RefCountable (const RefCountable &)=delete
| RefCountable (RefCountable &&)=delete
RefCountable & | operator= (const RefCountable &)=delete
RefCountable & | operator= (RefCountable &&)=delete
virtual int | addRef () const override
virtual int | releaseRef () const override
int | refCount () const
Public Member Functions inherited from nx::sdk::Interface< IPlugin >
virtual IRefCountable * | queryInterface (const InterfaceId *id)
Ptr< Interface > | queryInterface ()
Ptr< const Interface > | queryInterface () const
Public Member Functions inherited from nx::sdk::IRefCountable
virtual | ~IRefCountable ()=default
template<class Interface >
Ptr< Interface > | queryInterface ()
template<class Interface >
Ptr< const Interface > | queryInterface () const
int | refCountThreadUnsafe () const

## Protected Member Functions
virtual Result< IEngine * > | doObtainEngine ()
virtual std::string | manifestString () const
virtual void | getManifest (Result< const IString *> *outResult) const override
virtual void | doCreateEngine (Result< IEngine *> *outResult) override
Protected Member Functions inherited from nx::sdk::Interface< IPlugin >
virtual IRefCountable * | queryInterface (const IRefCountable::InterfaceId *id) override
IRefCountable * | queryInterfaceSupportingDeprecatedId (const IRefCountable::InterfaceId *id, const Uuid &deprecatedInterfaceId)

## Additional Inherited Members
Static Public Member Functions inherited from nx::sdk::IPlugin
static auto | interfaceId ()
Static Public Member Functions inherited from nx::sdk::IRefCountable
static auto | interfaceId ()
Static Public Attributes inherited from nx::sdk::IPlugin
static constexpr const char * | kEntryPointFuncName = "createNxPlugin"
static constexpr const char * | kMultiEntryPointFuncName = "createNxPluginByIndex"
Static Protected Member Functions inherited from nx::sdk::IRefCountable
template<int len>
static const InterfaceId * | makeId (const char(&charArray)[len])
template<int len, int alternativeLen>
static std::vector< const InterfaceId * > | makeIdWithAlternative (const char(&charArray)[len], const char(&alternativeCharArray)[alternativeLen])
template<class TemplateInstance , class TemplateArg , int len>
static const InterfaceId * | makeIdForTemplate (const char(&baseIdCharArray)[len])
static std::vector< const InterfaceId * > | alternativeInterfaceIds (const InterfaceId *id)
static std::vector< const InterfaceId * > | alternativeInterfaceIds (std::vector< const InterfaceId *> ids)

## Detailed Description

Base class for a typical implementation of an Analytics Plugin. Hides many technical details of the Analytics Plugin SDK, but may limit plugin capabilities - use only when suitable.

## Constructor & Destructor Documentation

## ◆ Plugin()

nx::sdk::analytics::Plugin::Plugin | ( | std::string | pluginManifest,
|  | CreateEngine | createEngine
| ) |  |

Allows to use this class directly without inhering it.

Deprecated:
  Instead of using this constructor, create a subclass, override doObtainEngine() and manifestString().

Parameters

  pluginManifest | Plugin manifest to be returned from manifest().
  createEngine | Functor for Engine creation.

## Member Function Documentation

## ◆ doObtainEngine()

Result< IEngine * > nx::sdk::analytics::Plugin::doObtainEngine | ( |  | ) |
| protected virtual

Override this method instead of doCreateEngine().

Reimplemented in nx::vms_server_plugins::analytics::stub::custom_metadata::Plugin, nx::vms_server_plugins::analytics::stub::diagnostic_events::Plugin, nx::vms_server_plugins::analytics::stub::events::Plugin, nx::vms_server_plugins::analytics::stub::motion_metadata::Plugin, nx::vms_server_plugins::analytics::stub::roi::Plugin, nx::vms_server_plugins::analytics::stub::sdk_features::Plugin, nx::vms_server_plugins::analytics::stub::settings::Plugin, nx::vms_server_plugins::analytics::stub::special_objects::Plugin, nx::vms_server_plugins::analytics::stub::video_frames::Plugin, nx::vms_server_plugins::analytics::stub::best_shots::Plugin, nx::vms_server_plugins::analytics::stub::object_actions::Plugin, nx::vms_server_plugins::analytics::stub::object_detection::Plugin, nx::vms_server_plugins::analytics::stub::object_streamer::Plugin, nx::vms_server_plugins::analytics::stub::taxonomy_features::Plugin, nx::vms_server_plugins::analytics::sample::Plugin, and nx::vms_server_plugins::analytics::stub::http_requests::Plugin.

## ◆ instanceId()

virtual std::string nx::sdk::analytics::Plugin::instanceId | ( |  | ) | const
| inline virtual

Override for multi-IPlugin libraries; provide pluginId specified in the Manifest.

Reimplemented in nx::vms_server_plugins::analytics::stub::custom_metadata::Plugin, nx::vms_server_plugins::analytics::stub::diagnostic_events::Plugin, nx::vms_server_plugins::analytics::stub::events::Plugin, nx::vms_server_plugins::analytics::stub::motion_metadata::Plugin, nx::vms_server_plugins::analytics::stub::roi::Plugin, nx::vms_server_plugins::analytics::stub::sdk_features::Plugin, nx::vms_server_plugins::analytics::stub::settings::Plugin, nx::vms_server_plugins::analytics::stub::special_objects::Plugin, nx::vms_server_plugins::analytics::stub::video_frames::Plugin, and nx::vms_server_plugins::analytics::stub::taxonomy_features::Plugin.

## ◆ setUtilityProvider()

void nx::sdk::analytics::Plugin::setUtilityProvider | ( | IUtilityProvider * | utilityProvider | ) |
| override virtual

Provides an object which the plugin can use for calling back to access some data and functionality provided by the process that uses the plugin.

For details, see the documentation for IUtilityProvider.

Implements nx::sdk::IPlugin.

The documentation for this class was generated from the following files:

- src/nx/sdk/analytics/helpers/plugin.h
- src/nx/sdk/analytics/helpers/plugin.cpp