#include "fifo.h" using namespace std; //#define DEBUGFIFO //////////////////////////////////////////// Fifo::Fifo(unsigned int f_size) { cout << "construction d'une fifo" << endl; this->data=new char(f_size); //allocation de data this->fifo_size = f_size ; this->write_index = 0 ; this->read_index = 0 ; this->nb_available = 0 ; } //////////////////////////////////////////// Fifo::~Fifo() { delete(this->data); //libération de data } //////////////////////////////////////////// char Fifo::write_char(const char token){ if(this->nb_available >= this->fifo_size) return 0 ; this->data[this->write_index] = token ; this->write_index = this->write_index + 1; if(this->write_index >= this->fifo_size) this->write_index = 0 ; this->nb_available = this->nb_available + 1 ; return 1 ; } //////////////////////////////////////////// char Fifo::read_char(char * token){ if(this->nb_available == 0) return 0; *token = this->data[this->read_index] ; this->read_index = this->read_index + 1; if(this->read_index >= this->fifo_size) this->read_index = 0 ; this->nb_available = this->nb_available -1 ; return 1 ; } //////////////////////////////////////////// int Fifo::get_nb_available() { #ifdef DEBUGFIFO cout <<" get_nb_available() a été invoquée"<nb_available; }