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:
nx::sdk::RefCountable< IPlugin > nx::sdk::IPlugin nx::sdk::Interface< IPlugin > nx::sdk::IRefCountable nx::vms_server_plugins::analytics::sample::Plugin nx::vms_server_plugins::analytics::stub::Plugin

Public Types

using CreateEngine = std::function< IEngine *(Plugin *plugin)>
 
- Public Types inherited from nx::sdk::IPlugin
typedef IPlugin *(* EntryPointFunc) ()
 

Public Member Functions

 Plugin (std::string pluginManifest, CreateEngine createEngine)
 
Ptr< IUtilityProviderutilityProvider () const
 
virtual void setUtilityProvider (IUtilityProvider *utilityProvider) override
 
- Public Member Functions inherited from nx::sdk::RefCountable< IPlugin >
 RefCountable (const RefCountable &)=delete
 
 RefCountable (RefCountable &&)=delete
 
RefCountableoperator= (const RefCountable &)=delete
 
RefCountableoperator= (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 IRefCountablequeryInterface (const InterfaceId *id)
 
Ptr< InterfacequeryInterface ()
 
Ptr< const InterfacequeryInterface () const
 
- Public Member Functions inherited from nx::sdk::IRefCountable
virtual ~IRefCountable ()=default
 
template<class Interface >
Ptr< InterfacequeryInterface ()
 
template<class Interface >
Ptr< const InterfacequeryInterface () 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 IRefCountablequeryInterface (const IRefCountable::InterfaceId *id) override
 
IRefCountablequeryInterfaceSupportingDeprecatedId (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 Protected Member Functions inherited from nx::sdk::IRefCountable
template<int len>
static constexpr const InterfaceIdmakeId (const char(&charArray)[len])
 
template<class TemplateInstance , class TemplateArg , int len>
static const InterfaceIdmakeIdForTemplate (const char(&baseIdCharArray)[len])
 

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
pluginManifestPlugin manifest to be returned from manifest().
createEngineFunctor for Engine creation.

Member Function Documentation

◆ doObtainEngine()

Result< IEngine * > nx::sdk::analytics::Plugin::doObtainEngine ( )
protectedvirtual

Override this method instead of doCreateEngine().

Reimplemented in nx::vms_server_plugins::analytics::sample::Plugin, and nx::vms_server_plugins::analytics::stub::Plugin.

◆ setUtilityProvider()

void nx::sdk::analytics::Plugin::setUtilityProvider ( IUtilityProvider utilityProvider)
overridevirtual

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: