Rock, Paper, Scissors game coordinator

Dependencies:   fsl_phy_mcr20a fsl_smac mbed-rtos mbed

Fork of mcr20_RPS_Coordinator by Freescale

circular_buffer.h

Committer:
mnorman4
Date:
2015-11-17
Revision:
0:9c8c234fd5ae

File content as of revision 0:9c8c234fd5ae:

#ifndef __CIRCULAR_BUFFER_H__
#define __CIRCULAR_BUFFER_H__

#include "EmbeddedTypes.h"
#include "MemManager.h"

#ifndef gCircularBufferSize_c
#define gCircularBufferSize_c 32
#endif

typedef enum bufferStatus_tag
{
    buffer_Ok_c = 0,
    buffer_Empty_c,
    buffer_Full_c
}bufferStatus_t;

class CircularBuffer {
  public:
    CircularBuffer();
    CircularBuffer(uint32_t sz);
    ~CircularBuffer();
    bufferStatus_t addToBuffer (uint8_t c);
    bufferStatus_t getFromBuffer (uint8_t *c);
    uint32_t getCount();
  private:
    uint8_t *buffer;
    uint32_t size;
    uint32_t readIndex;
    uint32_t writeIndex; 
    uint32_t count;
};

#endif