GainSpan Wi-Fi library see: http://mbed.org/users/gsfan/notebook/gainspan_wifi/

Fork of GSwifi_old by gs fan

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers RingBuffer.h Source File

RingBuffer.h

00001 /*
00002  * mbed library for RingBuffer
00003  * Copyright (c) 2010 Hiroshi Suga
00004  * Released under the MIT License: http://mbed.org/license/mit
00005  */
00006 
00007 /* @file
00008  * @brief Ring Buffer
00009  */
00010 
00011 #ifndef RingBuffer_H
00012 #define RingBuffer_H
00013 
00014 #include "mbed.h"
00015 
00016 class RingBuffer {
00017 public:
00018     /** init Stack class
00019      * @param p_size size of ring buffer
00020      */
00021     RingBuffer (int p_size);
00022     ~RingBuffer ();
00023 
00024     /** put to ring buffer
00025      * @param dat data
00026      * @return data / -1:error
00027      */
00028     int put (char dat);
00029 
00030     /** put to ring buffer
00031      * @param dat data
00032      * @param len length
00033      * @return put length
00034      */
00035     int put (char *dat, int len);
00036 
00037     /** get from ring buffer
00038      * @param dat data
00039      * @retval 0:ok / -1:error
00040      */
00041     int get (char *dat);
00042 
00043     /** get from ring buffer
00044      * @param dat data
00045      * @param len length
00046      * @return get length
00047      */
00048     int get (char *dat, int len);
00049 
00050     void clear ();
00051     int available ();
00052     int use ();
00053 
00054 private:
00055     char *buf;
00056     int size;
00057     int addr_w, addr_r;
00058 };
00059 
00060 #endif