You specify the ID, a routine to be invoked and the client data item.
Currently - only SdsFreeId() is watched and the "reserved" item in the call back will always be zero when invoked from SdsFreeId(). It will be some other value if this feature is extended and it is invoked from elsewhere.
| > | id | SdsIdType | Identifier to be watched. If 0, then cancel watching. |
|---|---|---|---|
| > | watchRoutine | SdsWatchRoutineType | The routine to be invoked when the watch is triggered. If not specified, then a message is written to stdout. |
| > | 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 (0) => SdsFree. |
| SDS_WATCH_EVENT_DELETE | SdsDelete. |
|---|---|
| SDS_WATCH_EVENT_READFREE | SdsReadFree. |
| SDS_WATCH_EVENT_NEW | SdsNew. |
| 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 |
Click here for the DRAMA home page and here for the AAO home page.
For more information, contact tjf@aaoepp.aao.gov.au