/[fenfire]/fenfire/org/fenfire/spanimages/gl/CachingSpanImageFactory.java
ViewVC logotype

Diff of /fenfire/org/fenfire/spanimages/gl/CachingSpanImageFactory.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by tjl, Wed Aug 13 06:36:32 2003 UTC revision 1.3 by tjl, Tue Aug 26 18:50:47 2003 UTC
# Line 25  CachingSpanImageFactory.java Line 25  CachingSpanImageFactory.java
25   */   */
26    
27  package org.fenfire.spanimages.gl;  package org.fenfire.spanimages.gl;
28    import org.nongnu.libvob.util.CacheControl;
29  import org.fenfire.spanimages.*;  import org.fenfire.spanimages.*;
30  import org.nongnu.navidoc.util.*;  import org.nongnu.navidoc.util.*;
31  import org.nongnu.alph.*;  import org.nongnu.alph.*;
# Line 38  public class CachingSpanImageFactory ext Line 39  public class CachingSpanImageFactory ext
39      private Map cache = Collections.synchronizedMap(      private Map cache = Collections.synchronizedMap(
40                      new SoftValueMap());                      new SoftValueMap());
41      public SpanImageFactory factory;      public SpanImageFactory factory;
42        CacheControl.Listener listener;
43    
44      public CachingSpanImageFactory(SpanImageFactory factory) {      public CachingSpanImageFactory(SpanImageFactory factory) {
45          this.factory = factory;          this.factory = factory;
46            listener = CacheControl.registerCache(this,
47                            "SpanImage cache for "+factory);
48      }      }
49    
50      public void clear() {      public void clear() {
# Line 50  public class CachingSpanImageFactory ext Line 54  public class CachingSpanImageFactory ext
54      public SpanImageVob getSpanImageVob(ImageSpan s) {      public SpanImageVob getSpanImageVob(ImageSpan s) {
55          SpanImageVob ret = (SpanImageVob)cache.get(s);          SpanImageVob ret = (SpanImageVob)cache.get(s);
56          if(ret == null) {          if(ret == null) {
57                listener.startMiss(s);
58              ret = factory.getSpanImageVob(s);              ret = factory.getSpanImageVob(s);
59              cache.put(s, ret);              cache.put(s, ret);
60          }              listener.endMiss(s);
61            } else
62                listener.hit(s);
63          return ret;          return ret;
64      }      }
65  }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26