Skip to main content

Interface-Buffer

The main class of the generated interface is called “Interface-Buffer”. This class is responsible to handle the data, actions and events from both sides and provide them to the other side.

The Interface-Buffer class contains the following methods:

Init

Initializes the Interface-Buffer.

Argument Name Type Description
dataModel
DataModel The generated Data-Model. Used to initialize data-values of the Interface-Buffer
defaultActionQueueSize FeatStd::UInt32 Size of the Action-Queue in bytes. The action queue is used to store actions for later execution. By pre-initializing it with a proper size, costly runtime memory allocations can be avoided.
defaultEventQueueSize FeatStd::UInt32 Size of the Event-Queue in bytes. The event queue is used to store event for later handling. By pre-initializing it with a proper size, costly runtime memory allocations can be avoided.

SetDataValue

Sets data values of the Interface-Buffer. This method is intended to be called by the external system to send data to the CGI application.

Argument Name Type Description
interfaceId
InputInterfaceId::Enum Id of the interface to set the value.
data void* Pointer to the data to be set.
dataSize FeatStd::UInt32 Size of the data to be shared in bytes. 

Result: True if setting the data-value is successful. False otherwise.

GetDataValue

Gets data values of the Interface-Buffer. This method is intended to be called by the external system to send data to the CGI application.

Argument Name Type Description
interfaceId
OutputInterfaceId::Enum Id of the interface to get the value.
target void* Pointer where the value should be written.
maxTargetSize FeatStd::UInt32 Maximum size of in bytes that the ‘target’ can store.
dataSize FeatStd::UInt32 Actual size of the data to be written.

Result: True if getting the data-value is successful. False otherwise. If the return value is false and the dataSize > maxTargetSize the cause for the failure was that not enough memory was available to store the output value.

TriggerAction

Triggers the specified action.

Argument Name Type Description
interfaceId
InputInterfaceId::Enum Id of the action to trigger.
data void* Pointer to data needed for the action.
dataSize FeatStd::UInt32 Actual size of the data to be written.

Result: True if getting action was successfully triggered. False otherwise.

SwapActionQueue

Swaps the action queue.

ProcessEvents

Gets events of the Interface-Buffer. This method is intended to be called by the external system to send data to the CGI application.

Argument Name Type Description
eventHandler
Internal::EventCallback* Pointer to the Event-Handler callback function. This will be called for every event in the queue.
maxCount FeatStd::Int32 Maximum count of events to handle. Use ‘-1’ for unlimited amount.

The Event-Callback function must have the following arguments:

Argument Name Type Description
interfaceId
FeatStd::UInt32 Id of the event
data void* Pointer to the event data if available.
dataSize FeatStd::UInt32 Size of the event data if available.

ProcessInputDataValues

Synchronizes the Interface-Buffer input data values with the applications Data-Model. This method is intended to be called by the CGI application.

Argument Name Type Description
dataModel
DataModel* The generated Data-Model.

ProcessOutputDataValues

Synchronizes the Interface-Buffer output data values with the applications Data-Model. This method is intended to be called by the CGI application.

Argument Name Type Description
dataModel
DataModel* The generated Data-Model.

ProcessActions

Executes all queued actions. This method is intended to be called by the CGI application.

Argument Name Type Description
actionContext
Action::ActionContext Action-Context used to execute the action functions and basic actions (e.g. Mssage-Actions)
sceneContext Scene::SceneContext Scene-Context used to execute the scene related actions (e.g. Scene-Interface or Scene-Table Interface)
maxCount FeatStd::Int32 Maximum count of actions to handle. Use ‘-1’ for unlimited amount.

TriggerGenericEvent

Raises a generic event. This method is intended to be called by the CGI application.

Argument Name Type Description
interfaceId
OutputInterfaceId::Enum Id of the event to raise.
data void* Pointer to the data of the event if available.
dataSize FeatStd::UInt32 Size of the event data if available.

Result: True if an event was raised (considering additional conditions). False otherwise.

TriggerMessageEvent

Raises a message event. This method is intended to be called by the CGI application.

Argument Name Type Description
message
Courier::Message* Message to check if an event is to be raised.

Result: True if an event was raised (considering additional conditions). False otherwise.

TriggerFunctionCallEvents

Raises Function-Call events. This method is intended to be called by the CGI application.

Argument Name Type Description
actionContext
Action::ActionContext* Action-Context used to call related Event-Functions.

Result: True if an event was raised (considering additional conditions). False otherwise.

SwapEventQueue

Swaps the event queue.