DISP_EVENT buffer flags

The following table describes which flag needs to be set in the size field in the DISP_EVENT structure based upon the buffer owner, how the buffer is being used, and how the buffer is being allocated:

Buffer owner

Used as asynchronous...

Method of allocation

Flag set in size field

Client-side

Input

Static or dynamic

CTA_EVT_ASYNC_BUF_IN

Client-side

Output

Static or dynamic

None (default)

Server-side

Input

Static

CTA_INTERNAL_BUFFER_STATIC

Server-side

Input

Dynamic

CTA_INTERNAL_BUFFER


To allocate and free buffers, you can use two Natural Access dispatcher functions: dispAllocBuffer and dispFreeBuffer. It is strongly recommended that the service implementation use dispAllocBuffer to allocate non-static buffers for delivery in event messages. Use of this function relieves the service implementation from having to free the buffer (Natural Access or the application performs the necessary dispFreeBuffer invocation). This method avoids complications since there is no way for the service implementation to determine when the dispatcher has completed delivery of an event.