huffman/inc/buffer.h

42 lines
937 B
C

#ifndef __IN303_BUFFER_H__
#define __IN303_BUFFER_H__
#include <stdio.h>
/**
* Informations sur un tampon de 8 caractères.
* Utiliser `createBuffer` pour initialiser un tampon
*/
typedef struct Buffer Buffer;
struct Buffer {
// Contient les données du tampon, c'est-à-dire
// les données en attente de vidage dans le fichier
char data;
// Nombre de bits utilisés dans le tampon. Si ce
// nombre vaut 8, le tampon est plein
int used_bits;
// Fichier dans lequel le tampon est vidé à l'appel
// de `flushBuffer` ou au débordement
FILE* linked_file;
};
/**
* Initialise un tampon vide lié au fichier donné
*/
Buffer createBuffer(FILE*);
/**
* Pousse le bit donné dans le tampon passé.
* Si le tampon déborde, le vide dans le fichier lié
*/
void pushToBuffer(int bit, Buffer*);
/**
* Vide le tampon dans son fichier et le réinitialise
*/
void flushBuffer(Buffer*);
#endif