Class IsisCache

java.lang.Object
fr.ifremer.isisfish.util.cache.IsisCache

public class IsisCache extends Object
IsisCacheOnReferenceMap utilise pour mettre les resultats de methode durant la simulation pour minimiser les appels

Created: 25 août 06 22:42:47

Version:
$Revision$

Last update: $Date$ by : $Author$

Author:
poussin
  • Field Details

    • defaultFactory

      public static IsisCacheBackend.Factory defaultFactory
    • totalCall

      protected long totalCall
    • cacheUsed

      protected long cacheUsed
    • cacheBackend

      protected IsisCacheBackend cacheBackend
    • methodStringCache

      protected Map<Method,String> methodStringCache
      La representation de la methode en string, la representation commence par un @ si il y a l'annotation noCache trouver pour cette methode.
    • sbKey

      protected StringBuilder sbKey
  • Constructor Details

    • IsisCache

      public IsisCache()
    • IsisCache

      public IsisCache(IsisCacheBackend cacheBackend)
  • Method Details

    • get

      public Object get(Method method, Object[] args, Object defaultValue) throws Throwable
      Recupere pour un pas de temps donnes une valeur calcule pour une cle.
      Parameters:
      defaultValue - la valeur par defaut a retourner si elle n'est pas en cache si defaultValue est une JoinPoint alors un proceed est appele dessus et le resultat de l'appel est utiliser comme valeur par defaut
      Returns:
      la valeur dans le cache ou defaultValue
      Throws:
      Throwable
    • computeKey

      protected TimeStep computeKey(StringBuilder sbKey, String methodString, Object[] args)
    • get

      protected Object get(TimeStep step, String key)
    • put

      protected void put(TimeStep step, String key, Object value)
    • realCall

      protected Object realCall(Object defaultValue) throws Throwable
      On fait l'appel reel dans une autre methode pour pouvoir le savoir dans les traces.
      Returns:
      ?
      Throws:
      Throwable
    • clear

      public void clear()
      remove all values in cache
    • clear

      public void clear(TimeStep step)
      remove all values in cache for the specied TimeStep
    • getCacheUsed

      public long getCacheUsed()
      Returns:
      Returns the cacheUsed.
    • getTotalCall

      public long getTotalCall()
      Returns:
      Returns the totalCall.
    • printStatistiqueAndClear

      public String printStatistiqueAndClear()
      Affiche les statistiques