IOl Class Reference

classe per la lettura del codice. More...

#include <IOl.h>

List of all members.

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.


Detailed Description

classe per la lettura del codice.

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.

See also:
decompressore

Definition at line 18 of file IOl.h.


Constructor & Destructor Documentation

IOl::IOl const char *  file,
frequenza **&  pf,
int &  numero
 

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).

Parameters:
file | file da cui leggere la codifica.
pf | riferimento ad array di puntatori a frequenza, vi vengono salvate le frequenze e i caratteri.
numero | vi viene salvato il numero di diversi caratteri nel file.
See also:
decompressore, IOs

Definition at line 33 of file IOl.cpp.

References buffer, stream, and traduci().

IOl::~IOl  ) 
 

il distruttore.

non fa altro che chiudere lo stream; Complessità: O(1).

Definition at line 74 of file IOl.cpp.

References stream.


Member Function Documentation

int IOl::elevato int  a,
int  b
[protected]
 

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).

Parameters:
a | base.
b | esponente.

Definition at line 7 of file IOl.cpp.

Referenced by traduci().

int IOl::leggi  ) 
 

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).

Returns:
restituisce il primo bit o -1 se siamo arrivati in fondo
See also:
buffer, contatore, decompressore

Definition at line 82 of file IOl.cpp.

References buffer, contatore, and stream.

Referenced by decompressore::decompressore(), decompressore::riempibuffer(), and decompressore::traduci().

int IOl::traduci char  c  )  [protected]
 

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).

Parameters:
c | carattere da tradurre.
Returns:
il valore intero corrispondente
See also:
elevato()

Definition at line 19 of file IOl.cpp.

References elevato().

Referenced by IOl().


Member Data Documentation

bool IOl::buffer[8] [protected]
 

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.

See also:
contatore, leggi()

Definition at line 28 of file IOl.h.

Referenced by IOl(), and leggi().

int IOl::contatore [protected]
 

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().

See also:
buffer, leggi()

Definition at line 35 of file IOl.h.

Referenced by leggi().

fstream IOl::stream [protected]
 

stream aperto in lettura.

questo stream viene aperto in lettura non formattata, in modo da non aver problemi nella lettura (con leggi) particolari.

See also:
leggi()

Definition at line 42 of file IOl.h.

Referenced by IOl(), leggi(), and ~IOl().


The documentation for this class was generated from the following files:
Generated on Sat May 20 14:57:56 2006 for Huffzip by  doxygen 1.4.6-NO