annotate PrivateQueue.h @ 47:8c0dcf6e15e6

new branch -- PR_univ -- changed header to include PR__application.h
author Sean Halle <seanhalle@yahoo.com>
date Mon, 22 Jul 2013 07:05:57 -0700
parents 67c7f5a0308b
children 1ea30ca7093c
rev   line source
Me@19 1 /*
seanhalle@44 2 * Copyright 2009 OpenSourceResearchInstitute.org
Me@19 3 * Licensed under GNU General Public License version 2
Me@19 4 *
Me@19 5 * Author: seanhalle@yahoo.com
Me@19 6 */
Me@19 7
Me@19 8 #ifndef _PRIVATE_QUEUE_H
Me@19 9 #define _PRIVATE_QUEUE_H
Me@19 10
Me@20 11
seanhalle@47 12 #include "PR__application_includes/PR__application.h"
Me@20 13
Me@19 14
Me@19 15 #define TRUE 1
Me@19 16 #define FALSE 0
Me@19 17
Me@19 18 #define LOCKED 1
Me@19 19 #define UNLOCKED 0
Me@19 20
Me@19 21
Me@19 22 /* It is the data that is shared so only need one mutex. */
Me@19 23 typedef struct
Me@19 24 { void **insertPos;
Me@19 25 void **extractPos;
Me@19 26 void **startOfData; //data is pointers
Me@19 27 void **endOfData; //set when alloc data
Me@19 28 }
Me@19 29 PrivQueueStruc;
Me@19 30
seanhalle@30 31 typedef void (*DynArrayFnPtr) ( void * ); //fn has to cast void *
Me@19 32
Me@19 33 PrivQueueStruc* makePrivQ ( );
seanhalle@37 34 bool32 isEmptyPrivQ ( PrivQueueStruc *Q ); //ret TRUE if empty
seanhalle@37 35 void* peekPrivQ ( PrivQueueStruc *Q ); //ret NULL if empty
seanhalle@32 36 void* readPrivQ ( PrivQueueStruc *Q ); //ret NULL if empty
Me@19 37 void writePrivQ( void *in, PrivQueueStruc *Q );
seanhalle@32 38 //return false when full
seanhalle@32 39 bool32 writeIfSpacePrivQ( void * in, PrivQueueStruc* Q );
seanhalle@32 40 int32 numInPrivQ( PrivQueueStruc *Q );
seanhalle@32 41 void pushPrivQ( void * in, PrivQueueStruc* Q );
seanhalle@32 42 void freePrivQ( PrivQueueStruc *Q );
seanhalle@30 43
Me@19 44 #endif /* _PRIVATE_QUEUE_H */
Me@19 45