/*
MKFifo.cpp - Library for malloced fifo.
tsched.h - Arduino Library for easy time scheduling.
Copyright 2013-2014 - 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/>.
*/

#include "Arduino.h"
#include "MKFifo.h"
#define MKF4ARDUINO
#include "../../ardcom/mkfifo.h"
#include "../../ardcom/mkfifo.c"

MKFifo::MKFifo() {
	mkfinit(&lemkf,"notinarduino");
}

int MKFifo::count() {
	return mkfcount(&lemkf);
}

int MKFifo::flush() {
	return mkfflush(&lemkf);
}

int MKFifo::destroy() {
	return mkfdelete(&lemkf);
}

char* MKFifo::peektail() {
	return mkfpeektail(&lemkf);
}

char* MKFifo::peek() {
	return mkfpeek(&lemkf);
}

int MKFifo::readtail(char *data,size_t size) {
	return mkfreadtail(&lemkf,data,size);
}

int MKFifo::read(char *data,size_t size) {
	return mkfread(&lemkf,data,size);
}

int MKFifo::empty() {
	return mkfempty(&lemkf);
}

int MKFifo::writehead(char* data) {
	return mkfwritehead(&lemkf,data);
}

int MKFifo::write(char *data) {
	return mkfwrite(&lemkf,data);
}

int MKFifo::size() {
	return mkfsize(&lemkf);
}


