/*
MKFifo.h - Library for malloced fifo.
Copyright 2013 - Laurent Menu-Kerforn
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef MKFifo_h
#define MKFifo_h

#include "Arduino.h"
#ifndef MKF4ARDUINO
#define MKF4ARDUINO
#endif

#include "../../ardcom/mkfifo.h"

class MKFifo
{
public:
	MKFifo();

	int count();
	int flush();
	int destroy(); //can't use reserved delete as method name
	char* peektail();
	char* peek();
	int readtail(char *data,size_t size);
	int read(char *data,size_t size);
	int empty();
	int writehead(char* data);
	int write(char *data);
	int size();

private:
	mkf lemkf;
};

#endif
