Ring Buffer

Dependents:   pseudo_comet GSwifi_sample MelInverter_sample SerialPassthrough_withRB

Committer:
okini3939
Date:
Wed May 18 14:57:36 2011 +0000
Revision:
1:ea0c0a46dbdd
Parent:
0:d0e076916a0a

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:d0e076916a0a 1 /*
okini3939 0:d0e076916a0a 2 * mbed library for RingBuffer
okini3939 0:d0e076916a0a 3 * Copyright (c) 2010 Hiroshi Suga
okini3939 0:d0e076916a0a 4 * Released under the MIT License: http://mbed.org/license/mit
okini3939 0:d0e076916a0a 5 */
okini3939 0:d0e076916a0a 6
okini3939 1:ea0c0a46dbdd 7 /** @file RingBuffer.h
okini3939 1:ea0c0a46dbdd 8 * @brief Ring Buffer
okini3939 1:ea0c0a46dbdd 9 */
okini3939 1:ea0c0a46dbdd 10
okini3939 0:d0e076916a0a 11 #ifndef RingBuffer_H
okini3939 0:d0e076916a0a 12 #define RingBuffer_H
okini3939 0:d0e076916a0a 13
okini3939 0:d0e076916a0a 14 #include "mbed.h"
okini3939 0:d0e076916a0a 15
okini3939 0:d0e076916a0a 16 class RingBuffer {
okini3939 0:d0e076916a0a 17 public:
okini3939 1:ea0c0a46dbdd 18 /** init Stack class
okini3939 1:ea0c0a46dbdd 19 * @param p_size size of ring buffer
okini3939 1:ea0c0a46dbdd 20 */
okini3939 0:d0e076916a0a 21 RingBuffer (int p_size);
okini3939 0:d0e076916a0a 22 ~RingBuffer ();
okini3939 0:d0e076916a0a 23
okini3939 1:ea0c0a46dbdd 24 /** put to ring buffer
okini3939 1:ea0c0a46dbdd 25 * @param dat data
okini3939 1:ea0c0a46dbdd 26 * @return data / -1:error
okini3939 1:ea0c0a46dbdd 27 */
okini3939 1:ea0c0a46dbdd 28 int put (char dat);
okini3939 1:ea0c0a46dbdd 29
okini3939 1:ea0c0a46dbdd 30 /** put to ring buffer
okini3939 1:ea0c0a46dbdd 31 * @param dat data
okini3939 1:ea0c0a46dbdd 32 * @param len length
okini3939 1:ea0c0a46dbdd 33 * @return put length
okini3939 1:ea0c0a46dbdd 34 */
okini3939 1:ea0c0a46dbdd 35 int put (char *dat, int len);
okini3939 1:ea0c0a46dbdd 36
okini3939 1:ea0c0a46dbdd 37 /** get from ring buffer
okini3939 1:ea0c0a46dbdd 38 * @param dat data
okini3939 1:ea0c0a46dbdd 39 * @retval 0:ok / -1:error
okini3939 1:ea0c0a46dbdd 40 */
okini3939 1:ea0c0a46dbdd 41 int get (char *dat);
okini3939 1:ea0c0a46dbdd 42
okini3939 1:ea0c0a46dbdd 43 /** get from ring buffer
okini3939 1:ea0c0a46dbdd 44 * @param dat data
okini3939 1:ea0c0a46dbdd 45 * @param len length
okini3939 1:ea0c0a46dbdd 46 * @return get length
okini3939 1:ea0c0a46dbdd 47 */
okini3939 1:ea0c0a46dbdd 48 int get (char *dat, int len);
okini3939 1:ea0c0a46dbdd 49
okini3939 0:d0e076916a0a 50 void clear ();
okini3939 0:d0e076916a0a 51 int available ();
okini3939 0:d0e076916a0a 52 int use ();
okini3939 0:d0e076916a0a 53
okini3939 0:d0e076916a0a 54 private:
okini3939 0:d0e076916a0a 55 char *buf;
okini3939 0:d0e076916a0a 56 int size;
okini3939 0:d0e076916a0a 57 int addr_w, addr_r;
okini3939 0:d0e076916a0a 58 };
okini3939 0:d0e076916a0a 59
okini3939 0:d0e076916a0a 60 #endif