57 lines
1.2 KiB
C++
57 lines
1.2 KiB
C++
/* queueVoid.h */
|
|
/**
|
|
* Copyright - See the COPYRIGHT that is included with this distribution.
|
|
* EPICS pvDataCPP is distributed subject to a Software License Agreement found
|
|
* in file LICENSE that is included with this distribution.
|
|
*/
|
|
#ifndef QUEUEVOID_H
|
|
#define QUEUEVOID_H
|
|
namespace epics { namespace pvData {
|
|
|
|
class QueueVoid;
|
|
class QueueElementVoid;
|
|
|
|
typedef void * ObjectPtr;
|
|
typedef QueueElementVoid * QueueElementVoidPtr;
|
|
typedef QueueElementVoidPtr * QueueElementVoidPtrArray;
|
|
|
|
class QueueElementVoid {
|
|
protected:
|
|
ObjectPtr getObject();
|
|
QueueElementVoid(ObjectPtr object);
|
|
~QueueElementVoid();
|
|
ObjectPtr object;
|
|
friend class QueueVoid;
|
|
};
|
|
|
|
|
|
class QueueVoid {
|
|
protected:
|
|
QueueVoid(ObjectPtr array[],int number);
|
|
~QueueVoid();
|
|
void clear();
|
|
int getNumberFree();
|
|
int capacity();
|
|
QueueElementVoidPtr getFree();
|
|
void setUsed(QueueElementVoid *queueElement);
|
|
QueueElementVoid *getUsed();
|
|
void releaseUsed(QueueElementVoid *queueElement);
|
|
private:
|
|
friend class QueueElementVoid;
|
|
QueueElementVoidPtrArray array;
|
|
int number;
|
|
int numberFree;
|
|
int numberUsed;
|
|
int nextGetFree;
|
|
int nextSetUsed;
|
|
int nextGetUsed;
|
|
int nextReleaseUsed;
|
|
};
|
|
|
|
|
|
}}
|
|
#endif /* QUEUEVOID_H */
|
|
|
|
|
|
|