com.ideo.sweetdev.data.service.datasource.pool
Class ObjectPool

java.lang.Object
  extended bycom.ideo.sweetdev.data.service.datasource.pool.ObjectPool
Direct Known Subclasses:
ConnectionPool

public abstract class ObjectPool
extends java.lang.Object

Un ObjectPool permet de gérer un ensemble d'objet qui peuvent être utilisé par des clients. Les clients peuvent : - demander un objet - relacher un objet Un ObjectPool référence ses objets en deux catégories : - les objets vérouillés (utilisé par des clients) - les objets libres (non utilisés par des clients) Un ObjectPool possède : - un nombre maximal d'objets - un nombre minimal d'objets - un nombre courant d'objets. Si un objet est demandé mais qu'il n'y en a pas de disponible alors un nouveau est instantié dans la limite du nombre maximal. Dans ce dernier cas, le pool fait patienter le client en attendant la libération d'un objet. Creation date: (20/10/2000 14:00:00)

 

Constructor Summary
ObjectPool()
          Constructeur
 
Method Summary
protected  void checkin(java.lang.Object object)
          Permet à un client de déverrouiller un objet.
protected  java.lang.Object checkout()
          Retourne un Objet du pool.
protected  void cleanup()
          Permet de nettoyer la table de hachage m_unlockedObjects des objets ayant expirés.
protected  void close()
          Permet de terminer l'object pool.
protected abstract  java.lang.Object create()
          Construit un nouvel objet pour le pool
 void initialize(int initialObjectsNumber, int maximalObjectsNumber)
          Initialise un pool d'objet sans destruction des instances non utilisées.
 void initialize(int initialObjectsNumber, int maximalObjectsNumber, long delay)
          Initialisation d'un pool d'objets.
static boolean isTrace()
          Check if the trace are available.
protected abstract  void killObject(java.lang.Object object)
          Détruit un objet du pool.
static void setTrace(boolean _trace)
          Sets if the log are activated.
protected static void trace(java.lang.String _msg)
          Trace the given message.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ObjectPool

public ObjectPool()
Constructeur

Method Detail

checkin

protected void checkin(java.lang.Object object)
Permet à un client de déverrouiller un objet.

1 - Déverrouille l'objet,
2 - Mise à disposition de l'objet,
3 - Notifie les threads en attente de la disponibilité d'un objet.
Creation date: (20/10/2000 14:00:00)

Parameters:
object - java.lang.Object - l'objet que le client relâche.

checkout

protected java.lang.Object checkout()
Retourne un Objet du pool.

Returns:
Object

cleanup

protected void cleanup()
Permet de nettoyer la table de hachage m_unlockedObjects des objets ayant expirés. Creation date: (20/10/2000 15:22:31)


close

protected void close()
Permet de terminer l'object pool.

1 - Stoppe le thread,
2 - Clôt chaque objet verrouillé ou pas du pool,
3 - Vider les tables de hachage,
4 - Déréférence les objets du pool. Creation date: (20/10/2000 16:06:37)


create

protected abstract java.lang.Object create()
                                    throws java.lang.Exception
Construit un nouvel objet pour le pool

Throws:
java.lang.Exception - cette exception est renvoyée si l'objet ne peut pas être crée
Returns:
nouvel objet

initialize

public void initialize(int initialObjectsNumber,
                       int maximalObjectsNumber)
                throws java.lang.Exception
Initialise un pool d'objet sans destruction des instances non utilisées.

Throws:
TechnicalException - cette exception est renvoyée si le pool ne peut pas être initialisée. Typiquement, cette erreur survient lorsque le driver de la base n'est pas trouvé
java.lang.Exception
Parameters:
initialObjectsNumber - int - nombre d'objets à la création du pool.
maximalObjectsNumber - int - nombre maximal d'objets gérés par le pool.

initialize

public void initialize(int initialObjectsNumber,
                       int maximalObjectsNumber,
                       long delay)
                throws java.lang.Exception
Initialisation d'un pool d'objets.

Throws:
TechnicalException - cette exception est renvoyée si le pool ne peut pas être initialisée. Typiquement, cette erreur survient lorsque le driver de la base n'est pas trouvé
java.lang.Exception
Parameters:
initialObjectsNumber - int - nombre d'objets à la création du pool.
maximalObjectsNumber - int - nombre maximal d'objets gérés par le pool.
delay - long - delai du thread de raffraichissement en millisecondes.

killObject

protected abstract void killObject(java.lang.Object object)
Détruit un objet du pool. Creation date: (20/10/2000 15:50:08)

Parameters:
object - java.lang.Object

setTrace

public static void setTrace(boolean _trace)
Sets if the log are activated.

Parameters:
_trace - boolean

isTrace

public static boolean isTrace()
Check if the trace are available.

Returns:
boolean

trace

protected static void trace(java.lang.String _msg)
Trace the given message.

Parameters:
_msg - the message