ringbuffer.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003                              -------------------
00004     cvs         : $Id$
00005     begin       : Sun Jan 25 2004
00006     copyright   : (C) 2004 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *                                                                         *
00011  *   This library is free software; you can redistribute it and/or         *
00012  *   modify it under the terms of the GNU Lesser General Public            *
00013  *   License as published by the Free Software Foundation; either          *
00014  *   version 2.1 of the License, or (at your option) any later version.    *
00015  *                                                                         *
00016  *   This library is distributed in the hope that it will be useful,       *
00017  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00018  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
00019  *   Lesser General Public License for more details.                       *
00020  *                                                                         *
00021  *   You should have received a copy of the GNU Lesser General Public      *
00022  *   License along with this library; if not, write to the Free Software   *
00023  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston,                 *
00024  *   MA  02111-1307  USA                                                   *
00025  *                                                                         *
00026  ***************************************************************************/
00027 
00028 
00029 #ifndef GWEN_RINGBUFFER_H
00030 #define GWEN_RINGBUFFER_H
00031 
00032 #include <gwenhywfar/types.h>
00033 #include <gwenhywfar/gwenhywfarapi.h>
00034 
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038 
00039 
00047 
00048 typedef struct GWEN_RINGBUFFER GWEN_RINGBUFFER;
00049 
00050 
00059 GWENHYWFAR_API
00060 GWEN_RINGBUFFER *GWEN_RingBuffer_new(unsigned int size);
00061 
00065 GWENHYWFAR_API
00066 void GWEN_RingBuffer_free(GWEN_RINGBUFFER *rb);
00067 
00068 
00081 GWENHYWFAR_API
00082 int GWEN_RingBuffer_WriteBytes(GWEN_RINGBUFFER *rb,
00083                                const char *buffer,
00084                                uint32_t *size);
00085 
00089 GWENHYWFAR_API
00090 int GWEN_RingBuffer_WriteByte(GWEN_RINGBUFFER *rb, char c);
00091 
00092 
00101 GWENHYWFAR_API
00102 int GWEN_RingBuffer_ReadBytes(GWEN_RINGBUFFER *rb,
00103                               char *buffer,
00104                               uint32_t *size);
00105 
00109 GWENHYWFAR_API
00110 int GWEN_RingBuffer_ReadByte(GWEN_RINGBUFFER *rb);
00121 GWENHYWFAR_API
00122 uint32_t GWEN_RingBuffer_GetUsedBytes(const GWEN_RINGBUFFER *rb);
00123 
00128 GWENHYWFAR_API
00129 uint32_t GWEN_RingBuffer_GetBytesLeft(const GWEN_RINGBUFFER *rb);
00130 
00134 GWENHYWFAR_API
00135 uint32_t GWEN_RingBuffer_GetBufferSize(const GWEN_RINGBUFFER *rb);
00147 GWENHYWFAR_API
00148 uint32_t GWEN_RingBuffer_GetEmptyCounter(const GWEN_RINGBUFFER *rb);
00149 
00150 GWENHYWFAR_API
00151 void GWEN_RingBuffer_ResetEmptyCounter(GWEN_RINGBUFFER *rb);
00152 
00153 
00157 GWENHYWFAR_API
00158 uint32_t GWEN_RingBuffer_GetFullCounter(const GWEN_RINGBUFFER *rb);
00159 
00160 GWENHYWFAR_API
00161 void GWEN_RingBuffer_ResetFullCounter(GWEN_RINGBUFFER *rb);
00162 
00163 
00168 GWENHYWFAR_API
00169 uint32_t GWEN_RingBuffer_GetThroughput(GWEN_RINGBUFFER *rb);
00170 
00174 GWENHYWFAR_API
00175 void GWEN_RingBuffer_ResetThroughput(GWEN_RINGBUFFER *rb);
00176 
00177 
00178 
00182 GWENHYWFAR_API
00183 uint32_t GWEN_RingBuffer_GetMaxUsedBytes(const GWEN_RINGBUFFER *rb);
00184 
00189 GWENHYWFAR_API
00190 void GWEN_RingBuffer_ResetMaxUsedBytes(GWEN_RINGBUFFER *rb);
00191 
00192 GWENHYWFAR_API
00193 void GWEN_RingBuffer_Reset(GWEN_RINGBUFFER *rb);
00194 
00195  /* name */
00197 
00198 
00199 
00211 GWENHYWFAR_API
00212 uint32_t
00213   GWEN_RingBuffer_GetMaxUnsegmentedRead(GWEN_RINGBUFFER *rb);
00214 
00220 GWENHYWFAR_API
00221 uint32_t
00222   GWEN_RingBuffer_GetMaxUnsegmentedWrite(GWEN_RINGBUFFER *rb);
00223 
00230 GWENHYWFAR_API
00231 void GWEN_RingBuffer_SkipBytesRead(GWEN_RINGBUFFER *rb,
00232                                    uint32_t psize);
00233 
00240 GWENHYWFAR_API
00241 void GWEN_RingBuffer_SkipBytesWrite(GWEN_RINGBUFFER *rb,
00242                                     uint32_t psize);
00243 
00253 GWENHYWFAR_API
00254 const char *GWEN_RingBuffer_GetReadPointer(const GWEN_RINGBUFFER *rb);
00255 
00265 GWENHYWFAR_API
00266 char *GWEN_RingBuffer_GetWritePointer(const GWEN_RINGBUFFER *rb);
00267  /* name */
00269 
00270  /* group */
00272 
00273 #ifdef __cplusplus
00274 }
00275 #endif
00276 
00277 
00278 #endif /* GWEN_RINGBUFFER_H */
00279 
00280 
00281 
00282 

Generated on Mon Jan 25 12:56:02 2010 for gwenhywfar by  doxygen 1.5.6