For robots and stuff
Wireless/RingBuffer/RingBuffer.h@0:c5afea7b9057, 2014-12-28 (annotated)
- Committer:
- jjones646
- Date:
- Sun Dec 28 06:27:18 2014 +0000
- Revision:
- 0:c5afea7b9057
initial commit;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jjones646 | 0:c5afea7b9057 | 1 | /* |
jjones646 | 0:c5afea7b9057 | 2 | * mbed library for RingBuffer |
jjones646 | 0:c5afea7b9057 | 3 | * Copyright (c) 2010 Hiroshi Suga |
jjones646 | 0:c5afea7b9057 | 4 | * Released under the MIT License: http://mbed.org/license/mit |
jjones646 | 0:c5afea7b9057 | 5 | */ |
jjones646 | 0:c5afea7b9057 | 6 | |
jjones646 | 0:c5afea7b9057 | 7 | #ifndef RINGBUFFER_H |
jjones646 | 0:c5afea7b9057 | 8 | #define RINGBUFFER_H |
jjones646 | 0:c5afea7b9057 | 9 | |
jjones646 | 0:c5afea7b9057 | 10 | #include "mbed.h" |
jjones646 | 0:c5afea7b9057 | 11 | |
jjones646 | 0:c5afea7b9057 | 12 | class RingBuffer : public Stream { |
jjones646 | 0:c5afea7b9057 | 13 | public: |
jjones646 | 0:c5afea7b9057 | 14 | RingBuffer(); |
jjones646 | 0:c5afea7b9057 | 15 | RingBuffer (unsigned int p_size = 0); |
jjones646 | 0:c5afea7b9057 | 16 | |
jjones646 | 0:c5afea7b9057 | 17 | /* |
jjones646 | 0:c5afea7b9057 | 18 | #if DOXYGEN_ONLY |
jjones646 | 0:c5afea7b9057 | 19 | int putc(int c); |
jjones646 | 0:c5afea7b9057 | 20 | int printf(const char* format, ...); |
jjones646 | 0:c5afea7b9057 | 21 | #endif |
jjones646 | 0:c5afea7b9057 | 22 | */ |
jjones646 | 0:c5afea7b9057 | 23 | int put(char*, int); |
jjones646 | 0:c5afea7b9057 | 24 | char get(void); |
jjones646 | 0:c5afea7b9057 | 25 | int get(char*, int); |
jjones646 | 0:c5afea7b9057 | 26 | void clear(void); |
jjones646 | 0:c5afea7b9057 | 27 | int available(void); |
jjones646 | 0:c5afea7b9057 | 28 | int use(void); |
jjones646 | 0:c5afea7b9057 | 29 | |
jjones646 | 0:c5afea7b9057 | 30 | private: |
jjones646 | 0:c5afea7b9057 | 31 | // Stream implementation functions |
jjones646 | 0:c5afea7b9057 | 32 | virtual int _putc(int value); |
jjones646 | 0:c5afea7b9057 | 33 | virtual int _getc(); |
jjones646 | 0:c5afea7b9057 | 34 | |
jjones646 | 0:c5afea7b9057 | 35 | volatile unsigned char *buf; |
jjones646 | 0:c5afea7b9057 | 36 | unsigned int size; |
jjones646 | 0:c5afea7b9057 | 37 | unsigned int addr_w; |
jjones646 | 0:c5afea7b9057 | 38 | unsigned int addr_r; |
jjones646 | 0:c5afea7b9057 | 39 | void init(unsigned int); |
jjones646 | 0:c5afea7b9057 | 40 | }; |
jjones646 | 0:c5afea7b9057 | 41 | |
jjones646 | 0:c5afea7b9057 | 42 | #endif // RINGBUFFER_H |