1 | /* Copyright (c) 2001, Stanford University
|
---|
2 | * All rights reserved.
|
---|
3 | *
|
---|
4 | * See the file LICENSE.txt for information on redistributing this software.
|
---|
5 | */
|
---|
6 |
|
---|
7 | #ifndef CR_BUFPOOL_H
|
---|
8 | #define CR_BUFPOOL_H
|
---|
9 |
|
---|
10 | #include <iprt/cdefs.h>
|
---|
11 |
|
---|
12 | #ifdef __cplusplus
|
---|
13 | extern "C" {
|
---|
14 | #endif
|
---|
15 |
|
---|
16 | typedef struct CRBufferPool_t CRBufferPool;
|
---|
17 | typedef void (*CRBufferPoolDeleteCallback)(void *data);
|
---|
18 |
|
---|
19 | DECLEXPORT(CRBufferPool *) crBufferPoolInit( unsigned int maxBuffers );
|
---|
20 | DECLEXPORT(void) crBufferPoolFree( CRBufferPool *pool );
|
---|
21 | DECLEXPORT(void) crBufferPoolCallbackFree(CRBufferPool *pool, CRBufferPoolDeleteCallback pfnDelete);
|
---|
22 |
|
---|
23 | DECLEXPORT(void) crBufferPoolPush( CRBufferPool *pool, void *buf, unsigned int bytes );
|
---|
24 | DECLEXPORT(void *) crBufferPoolPop( CRBufferPool *pool, unsigned int bytes );
|
---|
25 |
|
---|
26 | DECLEXPORT(int) crBufferPoolGetNumBuffers( CRBufferPool *pool );
|
---|
27 | DECLEXPORT(int) crBufferPoolGetMaxBuffers( CRBufferPool *pool );
|
---|
28 |
|
---|
29 | #ifdef __cplusplus
|
---|
30 | }
|
---|
31 | #endif
|
---|
32 |
|
---|
33 | #endif /* CR_BUFPOOL_H */
|
---|