From e19860e5445531761c90e4a968f70acecdba7cb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre=20=E2=9C=8F?= Date: Sat, 19 Nov 2016 21:36:31 +0100 Subject: [PATCH] =?UTF-8?q?Rajoute=20le=20compteur=20d'=C3=A9critures=20da?= =?UTF-8?q?ns=20le=20WriteBuffer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/buffer.h | 10 ++++++++++ src/buffer.c | 7 +++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/inc/buffer.h b/inc/buffer.h index f85546e..6b3ce31 100644 --- a/inc/buffer.h +++ b/inc/buffer.h @@ -18,6 +18,10 @@ struct WriteBuffer { // le tampon d'écriture est plein 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 // de `flushBuffer` ou au débordement FILE* dest_file; @@ -40,6 +44,12 @@ void putBuffer(char bit, 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 * bit au lieu d'octet par octet. Un octet est lu depuis le fichier diff --git a/src/buffer.c b/src/buffer.c index 46b55a6..a30aeba 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -5,8 +5,6 @@ WriteBuffer createWriteBuffer(FILE* file) { WriteBuffer buffer = { - .data = 0, - .pending_bits = 0, .dest_file = file }; @@ -35,6 +33,11 @@ void flushBuffer(WriteBuffer* buffer) { buffer->data = 0; buffer->pending_bits = 0; + buffer->flushed_count++; +} + +size_t getFlushedCount(WriteBuffer* buffer) { + return buffer->flushed_count; } ReadBuffer createReadBuffer(FILE* file) {