nx_metadata_sdk  1.0
Metadata SDK
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
nx::sdk::archive::IPlugin Class Referenceabstract

#include <i_plugin.h>

Inheritance diagram for nx::sdk::archive::IPlugin:
nx::sdk::Interface< IPlugin, nx::sdk::IPlugin > nx::sdk::IPlugin nx::sdk::Interface< IPlugin > nx::sdk::IRefCountable

Public Member Functions

Result< IDeviceManager * > createDeviceManager (const char *url, const IDeviceManager::IDeviceManagerHandler *deviceManagerHandler)
 
virtual const char * id () const =0
 
- Public Member Functions inherited from nx::sdk::Interface< IPlugin, nx::sdk::IPlugin >
virtual IRefCountablequeryInterface (const InterfaceId *id)
 
Ptr< InterfacequeryInterface ()
 
Ptr< const InterfacequeryInterface () const
 
- Public Member Functions inherited from nx::sdk::IPlugin
virtual void setUtilityProvider (IUtilityProvider *utilityProvider)=0
 
- 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
 
virtual int addRef () const =0
 
virtual int releaseRef () const =0
 
int refCountThreadUnsafe () const
 

Static Public Member Functions

static constexpr auto interfaceId ()
 
- Static Public Member Functions inherited from nx::sdk::IPlugin
static auto interfaceId ()
 
- Static Public Member Functions inherited from nx::sdk::IRefCountable
static auto interfaceId ()
 

Protected Member Functions

virtual void doCreateDeviceManager (const char *url, const IDeviceManager::IDeviceManagerHandler *deviceManagerHandler, Result< IDeviceManager *> *outResult)=0
 
- Protected Member Functions inherited from nx::sdk::Interface< IPlugin, nx::sdk::IPlugin >
virtual IRefCountablequeryInterface (const IRefCountable::InterfaceId *id) override
 
IRefCountablequeryInterfaceSupportingDeprecatedId (const IRefCountable::InterfaceId *id, const Uuid &deprecatedInterfaceId)
 
- Protected Member Functions inherited from nx::sdk::Interface< IPlugin >
IRefCountablequeryInterfaceSupportingDeprecatedId (const IRefCountable::InterfaceId *id, const Uuid &deprecatedInterfaceId)
 

Additional Inherited Members

- Public Types inherited from nx::sdk::IPlugin
typedef IPlugin *(* EntryPointFunc) ()
 
- 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

The Nx archive streaming/recording plugin SDK. It is conceived as an alternative to the Nx Storage SDK for those cases when underlying implementation is stream based rather than file system (in a broader sense of this notion) based. Plug-ins which implement this SDK are used seamlessly by Nx VMS along with storage ones. 'Seamlessly' in this context means that from the Nx User point of view video recording and playback should look the same whether the conventional storages or stream based are used.Plugin main class.

Member Function Documentation

◆ createDeviceManager()

Result<IDeviceManager*> nx::sdk::archive::IPlugin::createDeviceManager ( const char *  url,
const IDeviceManager::IDeviceManagerHandler deviceManagerHandler 
)
inline

Plugin should create device managers only for urls which has it's id() as a scheme.

◆ doCreateDeviceManager()

virtual void nx::sdk::archive::IPlugin::doCreateDeviceManager ( const char *  url,
const IDeviceManager::IDeviceManagerHandler deviceManagerHandler,
Result< IDeviceManager *> *  outResult 
)
protectedpure virtual

Provides an object for streaming/recording devices management.

◆ id()

virtual const char* nx::sdk::archive::IPlugin::id ( ) const
pure virtual

Plugin identificator. Should correspond to the scheme of the url accepted by createDeviceManager() function. For example if id == my_cloud_e4f09, than url will look like my_cloud_e4f09://login:passw.nosp@m.ord@.nosp@m.10.20.nosp@m..101.nosp@m..31.


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