nx_cloud_storage_sdk  1.0
Cloud Storage SDK
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
nx::sdk::cloud_storage::IPlugin Class Referenceabstract

#include <i_plugin.h>

Inheritance diagram for nx::sdk::cloud_storage::IPlugin:
nx::sdk::Interface< IPlugin, nx::sdk::IPlugin > nx::sdk::IPlugin nx::sdk::Interface< IPlugin > nx::sdk::IRefCountable nx::sdk::RefCountable< nx::sdk::cloud_storage::IPlugin > nx::vms_server_plugins::cloud_storage::sample::Plugin nx::vms_server_plugins::cloud_storage::stub::Plugin

Public Member Functions

Result< const IString * > manifest () const
 
Result< IEngine * > obtainEngine (const char *url, const IArchiveUpdateHandler *archiveUpdateHandler)
 
- Public Member Functions inherited from nx::sdk::Interface< IPlugin, nx::sdk::IPlugin >
virtual IRefCountablequeryInterface (const InterfaceId *id)
 
Ptr< RefCountablequeryInterface ()
 
Ptr< const RefCountablequeryInterface () 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< RefCountablequeryInterface ()
 
Ptr< const RefCountablequeryInterface () const
 
- Public Member Functions inherited from nx::sdk::IRefCountable
virtual ~IRefCountable ()=default
 
template<class RefCountable >
Ptr< RefCountablequeryInterface ()
 
template<class RefCountable >
Ptr< const RefCountablequeryInterface () const
 
virtual int addRef () const =0
 
virtual int releaseRef () const =0
 
int refCountThreadUnsafe () const
 

Static Public Member Functions

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

Protected Member Functions

virtual void getManifest (Result< const IString *> *outResult) const =0
 
virtual void doObtainEngine (const char *url, const IArchiveUpdateHandler *archiveUpdateHandler, Result< IEngine *> *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) ()
 
typedef IPlugin *(* MultiEntryPointFunc) (int instanceIndex)
 
- 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 constexpr const InterfaceIdmakeId (const char(&charArray)[len])
 
template<class TemplateInstance , class TemplateArg , int len>
static const InterfaceIdmakeIdForTemplate (const char(&baseIdCharArray)[len])
 
- Static Protected Attributes inherited from nx::sdk::IRefCountable
template<typename RefCountable >
static constexpr bool hasAlternativeInterfaceId = HasAlternativeInterfaceId<RefCountable>::value
 

Detailed Description

The main interface of a Cloud Storage Plugin instance.

Member Function Documentation

◆ manifest()

Result<const IString*> nx::sdk::cloud_storage::IPlugin::manifest ( ) const
inline

Provides a JSON Manifest for this Plugin instance. See the example of such Manifest in stub_cloud_storage_plugin.

◆ obtainEngine()

Result<IEngine*> nx::sdk::cloud_storage::IPlugin::obtainEngine ( const char *  url,
const IArchiveUpdateHandler archiveUpdateHandler 
)
inline

Obtain engine corresponding to the backed url. Now Server won't ask the same plugin for multiple engines, but potentially it may be implemented. Plugin should store engine internally and not recreate it if this function is called more than once with the same url.


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