readerwriter
Class Guardian

java.lang.Object
  |
  +--readerwriter.Guardian
Direct Known Subclasses:
ReadersPreferedGuardian, WritersPreferedGuardian

public abstract class Guardian
extends java.lang.Object

La classe concrete definiranno le priorita' di accesso alla risorsa condivisa, da parte di Lettori e Scrittori, in base alla situazione esistente : Lettori/Scrittori che gia' occupano la risorsa, Lettori/Scrittori che sono in attesa dell'utilizzo della risorsa. La classe astratta Guardian, implementa i metodi base di gestione dei lettori/scrittori per una risorsa condivisa accessibile in lettura (inizioLettura/fineLettura) ed in scrittura (inizioScrittura/fineScrittura)


Constructor Summary
Guardian()
          Inizializza allo stato di default le variabili private della classe
 
Method Summary
protected  int decrNumReaders()
          Decrementa il numero di lettori della risorsa ATTENZIONE : Il numero di lettori non puo' essere negativo
protected  int decrNumWriters()
          Decrementa il numero di scrittori della risorsa ATTENZIONE : Il numero di scrittori non puo' essere negativo
 void fineLettura()
          Determina la fine dell'operazione di lettura da parte di un thread
 void fineScrittura()
          Determina la fine dell'operazione di scrittura da parte di un thread
protected  int getNumReaders()
          Ritorna il numero di lettori attualmente in attesa della risorsa, oppure in lettura sulla stessa
protected  int getNumWriters()
          Ritorna il numero di scrittori attualmente in attesa della risorsa, oppure in scrittura sulla stessa
protected  void incrNumReaders()
          Incrementa il numero di lettori della risorsa
protected  void incrNumWriters()
          Incrementa il numero di scrittori della risorsa
 void iniziaLettura(java.lang.Object priority)
          Determina l'inizio dell'operazione di lettura da parte di un thread
 void iniziaScrittura(java.lang.Object priority)
          Determina l'inizio dell'operazione di scrittura da parte di un thread
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Guardian

public Guardian()
Inizializza allo stato di default le variabili private della classe
Method Detail

iniziaLettura

public void iniziaLettura(java.lang.Object priority)
                   throws SemaphoredThreadRequireException
Determina l'inizio dell'operazione di lettura da parte di un thread
Parameters:
priority - L'ogetto che rappresenta la priorita' da attribuire all'operazione
Throws:
SemaphoredThreadRequireException - Eccezione lanciata se il thread che sta per eseguire il metodo non e' un Thread di tipo SemaphoredThread

fineLettura

public void fineLettura()
                 throws SemaphoredThreadRequireException
Determina la fine dell'operazione di lettura da parte di un thread
Throws:
SemaphoredThreadRequireException - Eccezione lanciata se il thread che sta per eseguire il metodo non e' un Thread di tipo SemaphoredThread

iniziaScrittura

public void iniziaScrittura(java.lang.Object priority)
                     throws SemaphoredThreadRequireException
Determina l'inizio dell'operazione di scrittura da parte di un thread
Parameters:
priority - L'oggetto che rappresenta la priorita' da attribuire all'operazione
Throws:
SemaphoredThreadRequireException - Eccezione lanciata se il thread che sta per eseguire il metodo non e' un Thread di tipo SemaphoredThread

fineScrittura

public void fineScrittura()
                   throws SemaphoredThreadRequireException
Determina la fine dell'operazione di scrittura da parte di un thread
Throws:
SemaphoredThreadRequireException - Eccezione lanciata se il thread che sta per eseguire il metodo non e' un Thread di tipo SemaphoredThread

getNumReaders

protected int getNumReaders()
Ritorna il numero di lettori attualmente in attesa della risorsa, oppure in lettura sulla stessa
Returns:
int numero di lettori

incrNumReaders

protected void incrNumReaders()
Incrementa il numero di lettori della risorsa

decrNumReaders

protected int decrNumReaders()
Decrementa il numero di lettori della risorsa

ATTENZIONE : Il numero di lettori non puo' essere negativo

Returns:
int

>=0 Il numero di lettori sulla risorsa

-1 Errore, si e' cercato di decrementare il numero di lettori in maniera non consentita


getNumWriters

protected int getNumWriters()
Ritorna il numero di scrittori attualmente in attesa della risorsa, oppure in scrittura sulla stessa

incrNumWriters

protected void incrNumWriters()
Incrementa il numero di scrittori della risorsa

decrNumWriters

protected int decrNumWriters()
Decrementa il numero di scrittori della risorsa

ATTENZIONE : Il numero di scrittori non puo' essere negativo

Returns:
int

>=0 Il numero di scrittori sulla risorsa

-1 Errore, si e' cercato di decrementare il numero di scrittori in maniera non consentita