Ring Buffer
Dependents: pseudo_comet GSwifi_sample MelInverter_sample SerialPassthrough_withRB
RingBuffer.h@1:ea0c0a46dbdd, 2011-05-18 (annotated)
- Committer:
- okini3939
- Date:
- Wed May 18 14:57:36 2011 +0000
- Revision:
- 1:ea0c0a46dbdd
- Parent:
- 0:d0e076916a0a
Who changed what in which revision?
User | Revision | Line number | New 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 |