You specify the ID, a routine to be invoked and the client data item.
> | id | SdsIdType | Identifier to be watched. If 0, then cancel watching. If -1, then watch all IDs. Note, it is possible to watch an ID which is not currently in use, in that case, you will get a SDS_WATCH_EVENT_NEWID event when starts being used. |
---|---|---|---|
> | watchRoutine | SdsWatchRoutineType | The routine to be invoked when the watch is triggered. If not specified, then a message is written to stderr. |
> | clientData | void * | Passed through to watchRoutine as its client data item. |
< | oldId | SdsIdType * | If non-null, the previous id being watched is returned here. Zero if there was none. |
< | oldWatchRoutine | SdsWatchRoutineType * | If non-null, any old watch routine address is returned here. |
< | oldClientData | void ** | If non-null, any old watch routine client data is returned here. |
! | status | StatusType* | Modified status.
|
> | id | SdsIdType | The ID which triggered the watch event. |
---|---|---|---|
> | client_data | void * | As supplied to SdsSetWatch(). |
> | event | int | Indicates the event type. The following event types
are supported. Others might be added later and code
should allow for this.
|
SDS_WATCH_EVENT_FREE | SdsFree or SdsFreeIdAndCheck. |
---|---|
SDS_WATCH_EVENT_DELETE | SdsDelete. |
SDS_WATCH_EVENT_READFREE | SdsReadFree. |
SDS_WATCH_EVENT_NEW | SdsNew (on parent). |
SDS_WATCH_EVENT_COPY | SdsCopy. |
SDS_WATCH_EVENT_INSERT | SdsInsert. |
SDS_WATCH_EVENT_INSERT_CELL | SdsInsertCell. |
SDS_WATCH_EVENT_EXTRACT | SdsExtract. |
SDS_WATCH_EVENT_RESIZE | SdsResize |
SDS_WATCH_EVENT_NEWID | Any function that creates an id. "id" is the new SDS ID number. |
Click here for the DRAMA home page and here for the AAO home page.
For more information, contact tony.farrell@mq.edu.au