nx_server_plugin_sdk 1.0 Server Plugin SDK

Classes | Typedefs | Functions | Variables
nxpl Namespace Reference

VMS dynamic plugin API (c++) More...

## Classes
struct | EntryPoint
struct | NX_GUID
| GUID of plugin interface. More...
class | Plugin
class | Plugin2
class | PluginInterface
| Base class for every interface, provided by plugin. More...
struct | Setting

## Typedefs
typedef PluginInterface * | createNXPluginInstance()

## Functions
bool | operator== (const nxpl::NX_GUID &id1, const nxpl::NX_GUID &id2)
std::ostream & | operator<< (std::ostream &os, const nxpl::NX_GUID &id)

## Variables
static const nxpl::NX_GUID | IID_PluginInterface
static const nxpl::NX_GUID | IID_Plugin
static const nxpl::NX_GUID | IID_Plugin2

## Detailed Description

VMS dynamic plugin API (c++)

- inspired by COM
- each plugin MUST export function of type nxpl::CreateNXPluginInstanceProc with name createNXPluginInstance with "C" linkage
- each interface MUST inherit nxpl::PluginInterface
- each interface has GUID (IID_{interface_name} const non-member of type nxpl::NX_GUID)

Reference counting rules:

- if method returns pointer to interface derived from nxpl::PluginInterface then nxpl::PluginInterface::addRef is called by that method and nxpl::PluginInterface::releaseRef MUST be called by user to free up resources

Note
  Use in multithreaded environment:
  - PluginInterface::releaseRef is not guaranteed to be called from thread that called PluginInterface::addRef, so reference counting - related functionality MUST be thread-safe

## Typedef Documentation

## ◆ createNXPluginInstance

typedef PluginInterface* nxpl::createNXPluginInstance()

Prototype of an old-SDK entry point function.

## Variable Documentation

## ◆ IID_Plugin

const nxpl::NX_GUID nxpl::IID_Plugin
| static

Initial value:
=
{{0xe5,0x3c,0xf9,0x3d,0x61,0xd3,0x42,0x61,0x9d,0x25,0x9b,0x7b,0x3f,0x3a,0x81,0x2b}}

## ◆ IID_Plugin2

const nxpl::NX_GUID nxpl::IID_Plugin2
| static

Initial value:
=
{{0x10,0x0a,0xfc,0x3e,0xca,0x63,0x47,0xfb,0x9d,0x5d,0x4,0x40,0xfc,0x59,0xf8,0x66}}

## ◆ IID_PluginInterface

const nxpl::NX_GUID nxpl::IID_PluginInterface
| static

Initial value:
=
{{0xe0,0x3b,0x85,0x32,0x95,0x31,0x41,0xd6,0x98,0x2a,0xca,0x7b,0xf0,0x26,0x97,0x80}}