Class IsisCacheBackendOnGuava

java.lang.Object
fr.ifremer.isisfish.util.cache.IsisCacheBackendOnGuava
All Implemented Interfaces:
IsisCacheBackend

public class IsisCacheBackendOnGuava extends Object implements IsisCacheBackend
Cache qui reserve de la place pour l'equivalent de N pas de temps dans le cache. Une premiere instanciation du cache est faite. Puis apres le premier pas de temps on regarde la taille des objets ayant ete ajoutes au cache pour recalculer la nouvelle taille pour permettre de stocker N pas de temps.
Version:
$Revision$ Last update: $Date$ by : $Author$
Author:
poussin
  • Field Details

    • POINTER_SIZE

      public static final int POINTER_SIZE
      See Also:
    • DOUBLE_SIZE

      public static final int DOUBLE_SIZE
      See Also:
    • CHAR_SIZE

      public static final int CHAR_SIZE
      See Also:
    • CACHE_STEP

      public static double CACHE_STEP
      number of time steps to cache by interpolating from the first step
    • factory

      public static IsisCacheBackend.Factory factory
    • cache

      protected com.google.common.cache.Cache<String,Object> cache
    • isisWeigher

      protected IsisCacheBackendOnGuava.IsisWeigher isisWeigher
    • maxMemory

      protected long maxMemory
    • maxCache

      protected long maxCache
    • sizeCache

      protected long sizeCache
    • lastStep

      protected TimeStep lastStep
      the last step use to put value in cache
    • adjusted

      protected boolean adjusted
      if true size of cache has been recomputed
    • totalLastStepCached

      protected long totalLastStepCached
      le total en octet mis en cache au precedent pas de temps
    • numberCached

      protected long numberCached
      le total en d'element mis en cache
    • totalCached

      protected long totalCached
      le total en octet mis en cache
    • smallestCached

      protected long smallestCached
      la plus petite donnee mis en cache
    • biggestCached

      protected long biggestCached
      la plus grosse donnee mis en cache
    • numberStepCached

      protected long numberStepCached
      le total en d'element mis en cache
    • totalStepCached

      protected long totalStepCached
      le total en octet mis en cache
    • smallestStepCached

      protected long smallestStepCached
      la plus petite donnee mis en cache
    • biggestStepCached

      protected long biggestStepCached
      la plus grosse donnee mis en cache
  • Constructor Details

    • IsisCacheBackendOnGuava

      public IsisCacheBackendOnGuava()
  • Method Details

    • addStat

      public void addStat(long value)
    • addStepStat

      public void addStepStat(long value)
    • clear

      public void clear()
      Specified by:
      clear in interface IsisCacheBackend
    • removeStep

      public void removeStep(Object o)
      Specified by:
      removeStep in interface IsisCacheBackend
    • adjustedCache

      public void adjustedCache(long amount)
      resizes the cache if amount is not greater than autorized maxCache
      Parameters:
      amount - new size of cache in byte
    • changeStep

      public void changeStep()
      Previent le cache, qu'on change de TimeStep et qu'il peut faire du travail s'il en a besoin. - calcul de statistique - ajustement de la taille du cache
    • get

      public Object get(TimeStep step, String key)
      Specified by:
      get in interface IsisCacheBackend
    • put

      public void put(TimeStep step, String key, Object value)
      Specified by:
      put in interface IsisCacheBackend
    • getStat

      public String getStat()
      Description copied from interface: IsisCacheBackend
      get specific backend cache statistic
      Specified by:
      getStat in interface IsisCacheBackend
      Returns:
      backend specific string cache stat representation