Rajoute le compteur d'écritures dans le WriteBuffer

This commit is contained in:
Mattéo Delabre 2016-11-19 21:36:31 +01:00
parent fbc2e4730d
commit e19860e544
2 changed files with 15 additions and 2 deletions

View File

@ -18,6 +18,10 @@ struct WriteBuffer {
// le tampon d'écriture est plein // le tampon d'écriture est plein
size_t pending_bits; size_t pending_bits;
// Nombre d'octets écrits par le tampon d'écriture dans le
// fichier, correspondant au nombre de vidages du tampon
size_t flushed_count;
// Fichier dans lequel le tampon d'éciture est vidé à l'appel // Fichier dans lequel le tampon d'éciture est vidé à l'appel
// de `flushBuffer` ou au débordement // de `flushBuffer` ou au débordement
FILE* dest_file; FILE* dest_file;
@ -40,6 +44,12 @@ void putBuffer(char bit, WriteBuffer*);
*/ */
void flushBuffer(WriteBuffer*); void flushBuffer(WriteBuffer*);
/**
* Récupère le nombre de vidages effectués sur le tampon d'écriture,
* correspondant au nombre d'octets écrits par le tampon dans le fichier
*/
size_t getFlushedCount(WriteBuffer*);
/** /**
* Tampon permettant d'abstraire le lecture depuis un fichier bit par * Tampon permettant d'abstraire le lecture depuis un fichier bit par
* bit au lieu d'octet par octet. Un octet est lu depuis le fichier * bit au lieu d'octet par octet. Un octet est lu depuis le fichier

View File

@ -5,8 +5,6 @@
WriteBuffer createWriteBuffer(FILE* file) { WriteBuffer createWriteBuffer(FILE* file) {
WriteBuffer buffer = { WriteBuffer buffer = {
.data = 0,
.pending_bits = 0,
.dest_file = file .dest_file = file
}; };
@ -35,6 +33,11 @@ void flushBuffer(WriteBuffer* buffer) {
buffer->data = 0; buffer->data = 0;
buffer->pending_bits = 0; buffer->pending_bits = 0;
buffer->flushed_count++;
}
size_t getFlushedCount(WriteBuffer* buffer) {
return buffer->flushed_count;
} }
ReadBuffer createReadBuffer(FILE* file) { ReadBuffer createReadBuffer(FILE* file) {