Viz Plug-ins User Guide

Version 5.1 | Published December 12, 2023 ©

Plug-in API

Callbacks

PLUGIN_EXTENSION_CONFIGURE

Signature

int PLUGIN_EXTENSION_CONFIGURE(void* pvDataPtr, const char* configStr)

Required

No

Description

Called to configure the extension plug-in. This function is called if a configuration file for this extension exists with a <configStr> parameter.

PLUGIN_EXTENSION_CONFIG_GET

Signature

const char* PLUGIN_EXTENSION_CONFIG_GET(void* pvDataPtr)

Required

No

Description

Called to get the current configuration of the extension plug-in. The return value is expected to be the content of the serialized configuration.

PLUGIN_REQUEST

Signature

void PLUGIN_REQUEST(void* pvDataPtr, int connection, const char* location, const char* msg)

Required

No

Description

Called whenever a message is received for this extension.

Note: This function is always called on the main thread.

  • connection: object-id of sender (must be used for _api__respond)

  • location: message endpoint

  • msg: message payload

PLUGIN_RESPONSE

Signature

void PLUGIN_RESPONSE(void* pvDataPtr, const char* location, const char* msg)

Required

No

Description

Callback for incoming responses [Messages].

Note: This function is always called on the main thread.

After calling _api__request this function is called with the response message.

  • location: message endpoint

  • msg: message payload

Functions

_api__get_plugin_objectid

Signature

int _api__get_plugin_objectid();

Description

Returns the object ID of the current plug-in. Can be used for _api__request.

_api__request

Signature

void _api__request(int iObjectID, const char* location, const char* msg)

Description

Sends a message request.

Note: Function can be called at any time and is thread-safe.

  • iObjectID: object-id of the current plug-in. Can be retrieved by calling _api__get_plugin_objectid.

  • location: Message endpoint

  • msg: optional message payload

Example: If an extension provides a message endpoint of "/Extensions/Sample/greet".

You could make a requests with _api__request(myObjectId, "/Extensions/Sample/greet", "")


_api__respond

Signature

void _api__respond(int iObjectID, const char* location, const char* msg);

Description

Can be used to respond to a message request. If a message is received by getting PLUGIN_REQUEST called. You can respond with this function (immediately or at another time).

  • iObjectID: object-id which got passed by PLUGIN_REQUEST

  • location: location which got passed by PLUGIN_REQUEST

  • msg: the response message body

Note: Function can be called at any time and is thread-safe.