Pagina Principale   Moduli   Lista dei namespaces   Gerarchia delle classi   Lista in ordine alfabetico   Lista dei composti   Lista dei files   Membri dei namespaces   Membri dei composti   Membri dei files   Esempi  

Riferimenti per la classe fbfs::Storage_i

Si occupa di mantenere un repository di oggetti di tipo Obj. Continua...

#include <Storage_i.h>

Diagramma delle classi per fbfs::Storage_i

Inheritance graph
[legenda]
Diagramma di interrelazione per fbfs::Storage_i:

Collaboration graph
[legenda]
Lista di tutti i membri.

Membri pubblici

 Storage_i (Prefs &prefs, const CORBA::ORB_ptr &orb)
 Invocato al momento della creazione dell'oggetto sigleton utilizzato dal server CORBA. Continua...

virtual ~Storage_i ()
 Invocato alla chiusura del server. Continua...

Obj* get (const Security &cert, const Obj_id &id) throw (NotFound, SecurityException, InternalError)
 Legge dal repository un oggetto, dato il suo fbfs::Obj_id. Continua...

Obj_ts get_ts (const Security &cert, const Obj_id &id) throw (NotFound, SecurityException, InternalError)
 Ottiene la struttura fbfs::Obj_ts associata ad un oggetto. Continua...

Obj_prop get_prop (const Security &cert, const Obj_id &id) throw (NotFound, SecurityException, InternalError)
 Ottiene la struttura Obj_prop associata ad un oggetto. Continua...

void put (const Security &cert,const Obj &obj,const Obj_id &id,const Obj_prop &prop,const Obj_ts &ts) throw (AlreadyPresent, SecurityException, InternalError)
 Inserisce un oggetto nel repository. Continua...

Obj_infoList* list (const Security &cert) throw (SecurityException, InternalError)
 Ottiene una lista di identificatori degli oggetti contenuti nel repository. Continua...

void put_from_peer (const Security &cert, const Obj_id &id, const char *peer) throw (NotFound, PeerNotAvailable, AlreadyPresent, SecurityException, InternalError)
 Inserisce nel repository un oggetto prelevato da un altro Storage server. Continua...

void remove (const Security &cert, const Obj_id &id) throw (NotFound, SecurityException, InternalError)
 Rimuove un oggetto dal repository. Continua...


Descrizione Dettagliata

Si occupa di mantenere un repository di oggetti di tipo Obj.

Implementazione di un Server in grado di mantenere in forma persistente delle strutture di tipo Obj, ogniuna corredata di una struttura ausiliaria fbfs::Obj_prop, che definisce le proprietà di persistenza dell'oggetto. Esse sono utilizzate dal server FileManager, ma sono mantenute in forma persistente assieme all'oggetto a cui si riferiscono per permettere il recovery in caso di crash del server FileManager.

Ogni oggetto è inoltre corredato da una struttura di tipo Obj_ts che garantisce che la coppia (fbfs::Obj_id, fbfs::Obj_ts) individui in modo univoco un oggetto nel sistema: ciò permette di effettuare il cacheing di oggetti presso un server remoto e di verificare la consistenza delle copie fredde con quelle calde con la sola verifica dell'uguaglianza di fbfs::Obj_id e fbfs::Obj_ts. La struttura fbfs::Obj_ts è generata dal FileManager, affinché tutte le copie attive abbiano la medesima fbfs::Obj_ts.

Definizione alla linea 60 del file Storage_i.h.


Documentazione dei costruttori e dei distruttori

fbfs::Storage_i::Storage_i ( Prefs & prefs,
const CORBA::ORB_ptr & orb )
 

Invocato al momento della creazione dell'oggetto sigleton utilizzato dal server CORBA.

Qui è inizializzato lo stato del server.

fbfs::Storage_i::~Storage_i ( ) [inline, virtual]
 

Invocato alla chiusura del server.

Definizione alla linea 71 del file Storage_i.h.

00071                          {}


Documentazione delle funzioni membro

Obj * fbfs::Storage_i::get ( const Security & cert,
const Obj_id & id ) throw (NotFound, SecurityException, InternalError)
 

Legge dal repository un oggetto, dato il suo fbfs::Obj_id.

Parametri:
cert   certificato di sicurezza del richiedente.
id   identificativo dell'oggetto.
Restituisce:
oggetto identificato dall'fbfs::Obj_id id.
Eccezioni:
NotFound   nel repository non è presente l'oggetto indicato da fbfs::Obj_id.
SecurityException   il richiedente non ha i diritti per ottenere l'oggetto desiderato.
InternalError   il server non ha commesso un errore interno nel processare la richiesta.

Obj_prop fbfs::Storage_i::get_prop ( const Security & cert,
const Obj_id & id ) throw (NotFound, SecurityException, InternalError)
 

Ottiene la struttura Obj_prop associata ad un oggetto.

Parametri:
cert   certificato di sicurezza del richiedente.
id   identificativo dell'oggetto.
Restituisce:
struttura fbfs::Obj_prop associata all'oggetto identificato dall'fbfs::Obj_id id.
Eccezioni:
NotFound   nel repository non è presente l'oggetto indicato da fbfs::Obj_id.
SecurityException   il richiedente non ha i diritti per ottenere l'oggetto desiderato.
InternalError   il server non ha commesso un errore interno nel processare la richiesta.

Obj_ts fbfs::Storage_i::get_ts ( const Security & cert,
const Obj_id & id ) throw (NotFound, SecurityException, InternalError)
 

Ottiene la struttura fbfs::Obj_ts associata ad un oggetto.

Parametri:
cert   certificato di sicurezza del richiedente.
id   identificativo dell'oggetto.
Restituisce:
struttura fbfs::Obj_ts associata all'oggetto identificato dall'fbfs::Obj_id id.
Eccezioni:
NotFound   nel repository non è presente l'oggetto indicato da fbfs::Obj_id.
SecurityException   il richiedente non ha i diritti per ottenere l'oggetto desiderato.
InternalError   il server non ha commesso un errore interno nel processare la richiesta.

Obj_infoList * fbfs::Storage_i::list ( const Security & cert ) throw (SecurityException, InternalError)
 

Ottiene una lista di identificatori degli oggetti contenuti nel repository.

Parametri:
cert   certificato di sicurezza del richiedente.
Restituisce:
lista di fbfs::Obj_info.
Eccezioni:
SecurityException   il richiedente non ha i diritti per ottenere la lista.
InternalError   il server non ha commesso un errore interno nel processare la richiesta.

void fbfs::Storage_i::put ( const Security & cert,
const Obj & obj,
const Obj_id & id,
const Obj_prop & prop,
const Obj_ts & ts ) throw (AlreadyPresent, SecurityException, InternalError)
 

Inserisce un oggetto nel repository.

Parametri:
cert   certificato di sicurezza del richiedente.
obj   oggetto da inserire nel repository.
id   identificativo dell'oggetto.
prop   struttura fbfs::Obj_prop associata all'oggetto.
ts   struttura fbfs::Obj_ts associata all'oggetto.
Eccezioni:
AlreadyPredent   nel repository è già presente un oggetto con fbfs::Obj_id uguale a id.
SecurityException   il richiedente non ha i diritti per inserire l'oggetto nel repository.
InternalError   il server non ha commesso un errore interno nel processare la richiesta.

void fbfs::Storage_i::put_from_peer ( const Security & cert,
const Obj_id & id,
const char * peer ) throw (NotFound, PeerNotAvailable, AlreadyPresent, SecurityException, InternalError)
 

Inserisce nel repository un oggetto prelevato da un altro Storage server.

Parametri:
cert   certificato di sicurezza del richiedente.
id   identificativo dell'oggetto.
peer   URI dello Storage server da cui prelevare l'oggetto.
Eccezioni:
NotFound   sul server Storage remoto non è presente l'oggetto desiderato.
PeerNotAvailable   il server remoto non è raggiungibile.
AlreadyPresent   nel repository è già presente un oggetto con fbfs::Obj_id uguale a id.
SecurityException   il richiedente non ha i diritti per eseguire l'operazione.
InternalError   il server non ha commesso un errore interno nel processare la richiesta.

void fbfs::Storage_i::remove ( const Security & cert,
const Obj_id & id ) throw (NotFound, SecurityException, InternalError)
 

Rimuove un oggetto dal repository.

Parametri:
cert   certificato di sicurezza del richiedente.
id   identificativo dell'oggetto.
Eccezioni:
NotFount   nel repository non è presente l'oggetto indicato da fbfs::Obj_id.
SecurityException   il richiedente non ha i diritti per eseguire l'operazione.
InternalError   il server non ha commesso un errore interno nel processare la richiesta.


La documentazione per questa classe è stata generata a partire dal seguente file:
Generato il Thu Feb 15 13:25:09 2001 per A Simple Distributed Object Repository with CORBA & C++. da doxygen1.2.3 scritto da Dimitri van Heesch, © 1997-2000