#ifndef FIFO_H #define FIFO_H #include class Fifo { public: Fifo(unsigned int f_size=15); //paramètre par défaut ~Fifo(); char write_char(const char token); char read_char(char * token); int get_nb_available(); //les méthodes templates sont inlinées, on met le code dans le .h friend std::ostream &operator<<( std::ostream &output,Fifo &F ) { char car; if (F.read_char(&car)==1) output << car ; else output << "FIFO VIDE" ; return output; } friend std::istream &operator>>( std::istream &input, Fifo &F ) { char car; input >> car; F.write_char(car); //pas de vérification de place disponible dans la fifo, hic return input; } //ces attributs sont rendus privés pour éviter qu'un utilisateur de la classe puisse les modifier private: char * data ; unsigned int fifo_size ; //les attributs suivants seront modifiables par les classes filles protected: unsigned int write_index ; unsigned int read_index ; unsigned int nb_available ; }; #endif // FIFO_H