dnxQueue.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00028 #ifndef _DNXQUEUE_H_
00029 #define _DNXQUEUE_H_
00030
00031 typedef enum DnxQueueResult_
00032 {
00033 DNX_QRES_CONTINUE = 0,
00034 DNX_QRES_FOUND,
00035 DNX_QRES_EXIT,
00036 DNX_QRES_ERROR
00037 } DnxQueueResult;
00038
00040 typedef struct { int unused; } DnxQueue;
00041
00051 int dnxQueuePut(DnxQueue * queue, void * pPayload);
00052
00065 int dnxQueueGet(DnxQueue * queue, void ** ppPayload);
00066
00081 int dnxQueueGetWait(DnxQueue * queue, unsigned timeout, void ** ppPayload);
00082
00098 DnxQueueResult dnxQueueRemove(DnxQueue * queue, void ** ppPayload,
00099 DnxQueueResult (*Compare)(void * pLeft, void * pRight));
00100
00116 DnxQueueResult dnxQueueFind(DnxQueue * queue, void ** ppPayload,
00117 DnxQueueResult (*Compare)(void * pLeft, void * pRight));
00118
00131 int dnxQueueCreate(unsigned maxsz, void (*pldtor)(void *), DnxQueue ** pqueue);
00132
00139 void dnxQueueDestroy(DnxQueue * queue);
00140
00141 #endif
00142