/*************************************************************************\ * Copyright (c) 2002 The University of Chicago, as Operator of Argonne * National Laboratory. * Copyright (c) 2002 The Regents of the University of California, as * Operator of Los Alamos National Laboratory. * EPICS BASE Versions 3.13.7 * and higher are distributed subject to a Software License Agreement found * in file LICENSE that is included with this distribution. \*************************************************************************/ /*epicsRingPointer.cpp*/ /* Author: Marty Kraimer Date: 13OCT2000 */ #include #include #include #include #include #define epicsExportSharedSymbols #include "epicsRingPointer.h" typedef epicsRingPointer voidPointer; epicsShareFunc epicsRingPointerId epicsShareAPI epicsRingPointerCreate(int size) { voidPointer *pvoidPointer = new voidPointer(size); return(reinterpret_cast(pvoidPointer)); } epicsShareFunc void epicsShareAPI epicsRingPointerDelete(epicsRingPointerId id) { voidPointer *pvoidPointer = reinterpret_cast(id); delete pvoidPointer; } epicsShareFunc void* epicsShareAPI epicsRingPointerPop(epicsRingPointerId id) { voidPointer *pvoidPointer = reinterpret_cast(id); return pvoidPointer->pop(); } epicsShareFunc int epicsShareAPI epicsRingPointerPush(epicsRingPointerId id, void *p) { voidPointer *pvoidPointer = reinterpret_cast(id); return((pvoidPointer->push(p) ? 1 : 0)); } epicsShareFunc void epicsShareAPI epicsRingPointerFlush(epicsRingPointerId id) { voidPointer *pvoidPointer = reinterpret_cast(id); pvoidPointer->flush(); } epicsShareFunc int epicsShareAPI epicsRingPointerGetFree(epicsRingPointerId id) { voidPointer *pvoidPointer = reinterpret_cast(id); return(pvoidPointer->getFree()); } epicsShareFunc int epicsShareAPI epicsRingPointerGetUsed(epicsRingPointerId id) { voidPointer *pvoidPointer = reinterpret_cast(id); return(pvoidPointer->getUsed()); } epicsShareFunc int epicsShareAPI epicsRingPointerSize(epicsRingPointerId id) { voidPointer *pvoidPointer = reinterpret_cast(id); return(pvoidPointer->getSize()); } epicsShareFunc int epicsShareAPI epicsRingPointerIsEmpty(epicsRingPointerId id) { voidPointer *pvoidPointer = reinterpret_cast(id); return((pvoidPointer->isEmpty()) ? 1 : 0); } epicsShareFunc int epicsShareAPI epicsRingPointerIsFull(epicsRingPointerId id) { voidPointer *pvoidPointer = reinterpret_cast(id); return((pvoidPointer->isFull()) ? 1 : 0); }