isc_event_block()
Go Up to API Function Reference
Allocates two event parameter buffers (EPBs) for subsequent use with other API event calls.
Syntax
long isc_event_block(
char **event_buffer,
char **result_buffer,
unsigned short id_count,
. . .);
| Parameter | Type | Description |
|---|---|---|
|
|
|
Address of a character pointer; this function allocates and initializes an event parameter buffer and stores its address into the character pointer |
|
|
|
Address of a character pointer; this function allocates an event parameter buffer, and stores its address into the character pointer |
|
|
|
Number of event identifier strings that follow |
|
|
|
Up to 15 null-terminated and comma-separated strings that each name an event |
Description
isc_event_block() must be called before any other event functions. It:
- Allocates two event parameter buffers of the same size, and stores their addresses into the character pointers addressed by
event_bufferandresult_buffer. - Stores into the buffer referenced by
event_bufferthe names and event counts for each of the specified events. The names are the ones that appear as the final arguments toisc_event_block(). The event counts are initialized to zero and are used to specify how many times each event has been posted prior to each wait for events to occur. - Returns the length, in bytes, of the buffers.
The buffers, and their lengths, are used in subsequent calls to the functions isc_wait_for_event(), isc_que_events(), and isc_event_counts(). event_buffer is used to indicate the events of interest, and to hold the counts in effect before a wait for one of the events. After an event is posted, result_buffer is filled in exactly as event_buffer, except that the event counts are updated. isc_event_counts() is then called to determine which events were posted between the time the counts were set in event_buffer, and the time the counts are set in result_buffer.
Example
The following program fragment illustrates a call to isc_event_block():
#define number_of_stocks 3; char *event_buffer, *result_buffer; long length; length = isc_event_block( &event_buffer, &result_buffer, number_of_stocks, "DEC", "HP", "SUN");
Return value
isc_event_block() returns a number that is the size, in bytes, of each event parameter buffer it allocates.