#include <IOl.h>
Public Member Functions | |
IOl (const char *file, frequenza **&pf, int &numero) | |
il costruttore. | |
~IOl () | |
il distruttore. | |
int | leggi () |
funzione che restituisce il primo bit letto. | |
Protected Member Functions | |
int | traduci (char c) |
questa funzione traduce un carattere nel suo corrispondente valore intero. | |
int | elevato (int a, int b) |
funzione che eleva l'intero a a potenza b. | |
Protected Attributes | |
bool | buffer [8] |
buffer che mi memorizza il carattere sottoforma di bit. | |
int | contatore |
contatore per lo scorrimento del buffer. | |
fstream | stream |
stream aperto in lettura. |
questa classe serve come primo stadio della decodifica del file compresso e deve essere in grado di reperire i dati dal file a cominciare dai caratteri iniziali che mi rappresentano la codifica adottata, inoltre deve leggere un carattere all volta ma tenerlo in memoria per restituire al decompressore un bit alla volta.
Definition at line 18 of file IOl.h.
|
il costruttore. il costruttore provvede ad aprire stream in lettura binaria e inoltre memorizza all'interno di pf i diversi caratteri e le relative frequenze presenti all'interno dell'intestazione, per evitare multiple letture dell'intestazione viene introdotto il numero di diversi caratteri sotto forma di carattere (1 byte in più che riduce il tempo di decompressione, inoltre se non mettessi questo carattere per leggere correttamente l'intestazione dovrei introdurre un terminatore che mi assicuri che la intestazione è terminata); Complessità: O(n).
|
|
il distruttore. non fa altro che chiudere lo stream; Complessità: O(1). Definition at line 74 of file IOl.cpp. References stream. |
|
funzione che eleva l'intero a a potenza b. ho definito questa funzione perché opera solo sugli interi, è necessaria per la traduci(char c), non uso la pow per evitare errori derivanti dalle conversioni; Complessità: O(1).
Definition at line 7 of file IOl.cpp. Referenced by traduci(). |
|
funzione che restituisce il primo bit letto. se necessario legge un carattere e ritorna il primo bit di esso, non lo legge se il buffer non è gia stato utilizzato del tutto, e restituisce -1 se non ci sono più caratteri nel file; Complessità: O(1).
Definition at line 82 of file IOl.cpp. References buffer, contatore, and stream. Referenced by decompressore::decompressore(), decompressore::riempibuffer(), and decompressore::traduci(). |
|
questa funzione traduce un carattere nel suo corrispondente valore intero. è necessario definire questa funzione perché se si utilizza la conversione esplicita possono essere tradotti in modo scorretto certi caratteri dell'ASCII esteso; Complessità: O(1).
Definition at line 19 of file IOl.cpp. References elevato(). Referenced by IOl(). |
|
buffer che mi memorizza il carattere sottoforma di bit. ogni volta che bisogna leggere un nuovo carattere si riempie il buffer, ho scelto un buffer di booleiani perche farlo di interi sarebbe stato una perdita di spazio inutile, esso viene esaminato con l'aiuto di un contatore. |
|
contatore per lo scorrimento del buffer. quando il contatore raggiunge il valore 8, il buffer viene di nuovo riempito e il contatore resettato, tutto ciò avviene all'interno della funzione leggi(). Definition at line 35 of file IOl.h. Referenced by leggi(). |
|
stream aperto in lettura. questo stream viene aperto in lettura non formattata, in modo da non aver problemi nella lettura (con leggi) particolari.
|