/****************************************************************************/
/* Copyright 2009-2013 MBARI.                                               */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Written by Mike Risi for Respirometer project in 2009                    */
/* Modified by Bob Herlien for SensorNode for xFOCE, May 2013               */
/****************************************************************************/
#ifndef BUFFER_H
#define BUFFER_H

typedef struct
{
    unsigned char* data;
    int head;
    int tail;
    int ptr_mask;
} ByteBuffer;

/* buffer access and status functions */
int bufPut(unsigned char b, ByteBuffer* buff);
int bufGet(unsigned char* b, ByteBuffer* buff);

void bufClear(ByteBuffer* buff);
int bufIsFull(ByteBuffer* buff);
int bufIsEmpty(ByteBuffer* buff);
int bufAvailable(ByteBuffer* buff);

#endif
