asmuts      02/05/13 15:16:18

  Modified:    src/java/org/apache/jcs/engine/control Cache.java
               src/java/org/apache/jcs/engine/control/event
                        ElementEventQueue.java
               src/java/org/apache/jcs/engine/behavior ICompositeCache.java
               src/java/org/apache/jcs/engine/memory/behavior
                        IMemoryCache.java
               src/java/org/apache/jcs/engine/memory/lru
                        LRUMemoryCache.java
               src/java/org/apache/jcs/engine/memory MemoryCache.java
               src/java/org/apache/jcs/engine/memory/mru
                        MRUMemoryCache.java
               src/java/org/apache/jcs/engine/memory/shrinking
                        ShrinkerThread.java
  Log:
  Element Event Q, will add testers tomorrow
  
  Revision  Changes    Path
  1.8       +36 -1     
jakarta-turbine-jcs/src/java/org/apache/jcs/engine/control/Cache.java
  
  Index: Cache.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-jcs/src/java/org/apache/jcs/engine/control/Cache.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Cache.java        13 Apr 2002 04:01:33 -0000      1.7
  +++ Cache.java        13 May 2002 22:16:17 -0000      1.8
  @@ -72,10 +72,18 @@
   import org.apache.jcs.engine.behavior.ICompositeCache;
   import org.apache.jcs.engine.behavior.ICompositeCacheAttributes;
   import org.apache.jcs.engine.behavior.IElementAttributes;
  +
   import org.apache.jcs.engine.memory.MemoryCache;
   import org.apache.jcs.engine.memory.MemoryElementDescriptor;
   import org.apache.jcs.engine.memory.lru.LRUMemoryCache;
   
  +import org.apache.jcs.engine.control.event.ElementEvent;
  +import org.apache.jcs.engine.control.event.behavior.IElementEventHandler;
  +import org.apache.jcs.engine.control.event.behavior.IElementEvent;
  +import org.apache.jcs.engine.control.event.behavior.IElementEventConstants;
  +import org.apache.jcs.engine.control.event.behavior.IElementEventQueue;
  +import org.apache.jcs.engine.control.event.ElementEventQueue;
  +
   /**
    * This is the primary hub for a single cache/region. It control the flow of
    * items through the cache. The auxiliary and memory caches are plugged in
  @@ -83,7 +91,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Aaron Smuts</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>James Taylor</a>
  - * @version $Id: Cache.java,v 1.7 2002/04/13 04:01:33 jtaylor Exp $
  + * @version $Id: Cache.java,v 1.8 2002/05/13 22:16:17 asmuts Exp $
    */
   public class Cache
       implements ICache, ICompositeCache, Serializable
  @@ -110,6 +118,13 @@
        */
       public ICompositeCacheAttributes cacheAttr;
   
  +
  +    /**
  +     * Cache Attributes, for hub and memory auxiliary
  +     */
  +    public IElementEventQueue elementEventQ;
  +
  +
       // Statistics
       // FIXME: Provide accessors for these for instrumentation
   
  @@ -152,6 +167,8 @@
           this.attr = attr;
           this.cacheAttr = cattr;
   
  +        elementEventQ = new ElementEventQueue( cacheName );
  +
           createMemoryCache( cattr );
   
           if ( log.isDebugEnabled() )
  @@ -1002,6 +1019,24 @@
           }
           return ce.getElementAttributes();
       }
  +
  +
  +    /**
  +     * Adds an  ElementEvent  to be handled
  +     *
  +     * @param hand The IElementEventHandler
  +     * @param event The IElementEventHandler IElementEvent event
  +     */
  +    public void addElementEvent( IElementEventHandler hand, IElementEvent event )
  +        throws IOException
  +    {
  +      if ( log.isDebugEnabled() )
  +      {
  +        log.debug( "Adding to Q" );
  +      }
  +      elementEventQ.addElementEvent( hand, event );
  +    }
  +
   
       /**
        * Create the MemoryCache based on the config parameters. TODO: consider
  
  
  
  1.2       +17 -1     
jakarta-turbine-jcs/src/java/org/apache/jcs/engine/control/event/ElementEventQueue.java
  
  Index: ElementEventQueue.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-jcs/src/java/org/apache/jcs/engine/control/event/ElementEventQueue.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ElementEventQueue.java    13 May 2002 20:40:29 -0000      1.1
  +++ ElementEventQueue.java    13 May 2002 22:16:18 -0000      1.2
  @@ -24,7 +24,7 @@
   
       private String cacheName;
   
  -    private boolean destroyed;
  +    private boolean destroyed = false;
       private Thread t;
   
       // Internal queue implementation
  @@ -105,6 +105,12 @@
       public void addElementEvent( IElementEventHandler hand, IElementEvent event )
         throws IOException
       {
  +
  +        if ( log.isDebugEnabled() )
  +        {
  +          log.debug( "Adding Event Handler to QUEUE, !destroyed = " + !destroyed );
  +        }
  +
           if ( !destroyed )
           {
               ElementEventRunner runner = new ElementEventRunner( hand, event );
  @@ -141,6 +147,11 @@
   
               while ( head == tail )
               {
  +              if ( log.isDebugEnabled() )
  +              {
  +                log.debug( "Waiting for something to come in to the Q" );
  +              }
  +
                   queueLock.wait();
               }
   
  @@ -279,6 +290,10 @@
           ElementEventRunner( IElementEventHandler hand, IElementEvent event )
               throws IOException
           {
  +              if ( log.isDebugEnabled() )
  +              {
  +                log.debug( "Constructing " + this );
  +              }
               this.hand = hand;
               this.event = event;
           }
  @@ -291,6 +306,7 @@
           protected void doRun()
               throws IOException
           {
  +
             hand.handleElementEvent( event );
           }
       }
  
  
  
  1.4       +17 -0     
jakarta-turbine-jcs/src/java/org/apache/jcs/engine/behavior/ICompositeCache.java
  
  Index: ICompositeCache.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-jcs/src/java/org/apache/jcs/engine/behavior/ICompositeCache.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ICompositeCache.java      13 May 2002 20:40:54 -0000      1.3
  +++ ICompositeCache.java      13 May 2002 22:16:18 -0000      1.4
  @@ -3,6 +3,13 @@
   import java.io.IOException;
   import java.io.Serializable;
   
  +// this sort of breaks the package dependency.  Should probably move
  +// the event packages lower
  +import org.apache.jcs.engine.control.event.ElementEvent;
  +import org.apache.jcs.engine.control.event.behavior.IElementEventHandler;
  +import org.apache.jcs.engine.control.event.behavior.IElementEvent;
  +import org.apache.jcs.engine.control.event.behavior.IElementEventConstants;
  +
   /**
    * Much like the ICache interface, but this is specifically designed for the
    * CompositeCaches. This interface guarantees a simple set of methods for use by
  @@ -63,5 +70,15 @@
        * @return The cacheName value
        */
       public String getCacheName();
  +
  +    /**
  +     * Adds an  ElementEvent  to be handled
  +     *
  +     * @param hand The IElementEventHandler
  +     * @param event The IElementEventHandler IElementEvent event
  +     */
  +    public void addElementEvent( IElementEventHandler hand, IElementEvent event )
  +        throws IOException;
  +
   
   }
  
  
  
  1.5       +9 -0      
jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/behavior/IMemoryCache.java
  
  Index: IMemoryCache.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/behavior/IMemoryCache.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- IMemoryCache.java 13 May 2002 18:31:41 -0000      1.4
  +++ IMemoryCache.java 13 May 2002 22:16:18 -0000      1.5
  @@ -9,6 +9,7 @@
   import org.apache.jcs.engine.behavior.ICacheHub;
   import org.apache.jcs.engine.behavior.ICacheType;
   import org.apache.jcs.engine.behavior.ICompositeCacheAttributes;
  +import org.apache.jcs.engine.behavior.ICompositeCache;
   
   import org.apache.jcs.engine.memory.MemoryElementDescriptor;
   import org.apache.jcs.engine.control.Cache;
  @@ -160,5 +161,13 @@
        *@param  cattr  The new cacheAttributes value
        */
       public void setCacheAttributes( ICompositeCacheAttributes cattr );
  +
  +    /**
  +     *  Gets the cache hub / region taht the MemoryCache is used by
  +     *
  +     *@return    The cache value
  +     */
  +    public ICompositeCache getCompositeCache();
  +
   
   }
  
  
  
  1.9       +14 -1     
jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/lru/LRUMemoryCache.java
  
  Index: LRUMemoryCache.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/lru/LRUMemoryCache.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- LRUMemoryCache.java       13 May 2002 19:58:09 -0000      1.8
  +++ LRUMemoryCache.java       13 May 2002 22:16:18 -0000      1.9
  @@ -13,6 +13,7 @@
   import org.apache.jcs.engine.CacheElement;
   import org.apache.jcs.engine.behavior.ICacheElement;
   import org.apache.jcs.engine.behavior.ICompositeCacheAttributes;
  +import org.apache.jcs.engine.behavior.ICompositeCache;
   import org.apache.jcs.engine.behavior.IElementAttributes;
   import org.apache.jcs.engine.control.Cache;
   import org.apache.jcs.engine.memory.MemoryCache;
  @@ -33,7 +34,7 @@
    *@author     <a href="mailto:[EMAIL PROTECTED]";>Aaron Smuts</a>
    *@author     <a href="mailto:[EMAIL PROTECTED]";>James Taylor</a>
    *@created    May 13, 2002
  - *@version    $Id: LRUMemoryCache.java,v 1.8 2002/05/13 19:58:09 asmuts Exp $
  + *@version    $Id: LRUMemoryCache.java,v 1.9 2002/05/13 22:16:18 asmuts Exp $
    */
   public class LRUMemoryCache implements MemoryCache, Serializable
   {
  @@ -480,6 +481,18 @@
       {
           this.cattr = cattr;
       }
  +
  +
  +    /**
  +     *  Gets the cache hub / region taht the MemoryCache is used by
  +     *
  +     *@return    The cache value
  +     */
  +    public ICompositeCache getCompositeCache()
  +    {
  +      return this.cache;
  +    }
  +
   
       // --------------------------- internal mehods (linked list implementation)
   
  
  
  
  1.6       +10 -1     
jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/MemoryCache.java
  
  Index: MemoryCache.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/MemoryCache.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- MemoryCache.java  13 May 2002 18:41:03 -0000      1.5
  +++ MemoryCache.java  13 May 2002 22:16:18 -0000      1.6
  @@ -6,6 +6,7 @@
   
   import org.apache.jcs.engine.behavior.ICacheElement;
   import org.apache.jcs.engine.behavior.ICompositeCacheAttributes;
  +import org.apache.jcs.engine.behavior.ICompositeCache;
   import org.apache.jcs.engine.control.Cache;
   
   /**
  @@ -16,7 +17,7 @@
    *@author     <a href="mailto:[EMAIL PROTECTED]";>Aaron Smuts</a>
    *@author     <a href="mailto:[EMAIL PROTECTED]";>James Taylor</a>
    *@created    May 13, 2002
  - *@version    $Id: MemoryCache.java,v 1.5 2002/05/13 18:41:03 asmuts Exp $
  + *@version    $Id: MemoryCache.java,v 1.6 2002/05/13 22:16:18 asmuts Exp $
    */
   public interface MemoryCache
   {
  @@ -126,5 +127,13 @@
        *@param  cattr  The new cacheAttributes value
        */
       public void setCacheAttributes( ICompositeCacheAttributes cattr );
  +
  +
  +    /**
  +     *  Gets the cache hub / region taht the MemoryCache is used by
  +     *
  +     *@return    The cache value
  +     */
  +    public ICompositeCache getCompositeCache();
   
   }
  
  
  
  1.6       +15 -1     
jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/mru/MRUMemoryCache.java
  
  Index: MRUMemoryCache.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/mru/MRUMemoryCache.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- MRUMemoryCache.java       13 May 2002 18:12:27 -0000      1.5
  +++ MRUMemoryCache.java       13 May 2002 22:16:18 -0000      1.6
  @@ -13,12 +13,15 @@
   import org.apache.jcs.engine.CacheConstants;
   import org.apache.jcs.engine.behavior.ICacheElement;
   import org.apache.jcs.engine.behavior.ICompositeCacheAttributes;
  +import org.apache.jcs.engine.behavior.ICompositeCache;
   import org.apache.jcs.engine.behavior.IElementAttributes;
   import org.apache.jcs.engine.control.Cache;
   import org.apache.jcs.engine.memory.MemoryCache;
   import org.apache.jcs.engine.memory.MemoryElementDescriptor;
   import org.apache.jcs.engine.memory.shrinking.ShrinkerThread;
   
  +import org.apache.jcs.engine.behavior.ICompositeCache;
  +
   /**
    * A SLOW AS HELL reference management system. The most recently used items move
    * to the front of the list and get spooled to disk if the cache hub is
  @@ -26,7 +29,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Aaron Smuts</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>James Taylor</a>
  - * @version $Id: MRUMemoryCache.java,v 1.5 2002/05/13 18:12:27 asmuts Exp $
  + * @version $Id: MRUMemoryCache.java,v 1.6 2002/05/13 22:16:18 asmuts Exp $
    */
   public class MRUMemoryCache
       implements MemoryCache, Serializable
  @@ -514,6 +517,17 @@
       {
           this.cattr = cattr;
       }
  +
  +    /**
  +     *  Gets the cache hub / region taht the MemoryCache is used by
  +     *
  +     *@return    The cache value
  +     */
  +    public ICompositeCache getCompositeCache()
  +    {
  +      return this.cache;
  +    }
  +
   
       /**
        * Dump the cache map for debugging.
  
  
  
  1.8       +8 -2      
jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/shrinking/ShrinkerThread.java
  
  Index: ShrinkerThread.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/shrinking/ShrinkerThread.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ShrinkerThread.java       13 May 2002 18:46:25 -0000      1.7
  +++ ShrinkerThread.java       13 May 2002 22:16:18 -0000      1.8
  @@ -143,6 +143,9 @@
        *  it. 3. Has the item exceeded IdleTime defined in the element atributes?
        *  If so, remove it. If there are event listeners registered for the cache
        *  element, they will be called.
  +     *
  +     *@TODO    Change element event handling to use the queue, then move the
  +     *      queue to the region and access via the Cache.
        */
       protected void shrink()
       {
  @@ -155,6 +158,7 @@
           try
           {
   
  +
               Object[] keys = cache.getKeyArray();
               int size = keys.length;
               for ( int i = 0; i < size; i++ )
  @@ -203,7 +207,8 @@
                                   while ( hIt.hasNext() )
                                   {
                                       IElementEventHandler hand = ( 
IElementEventHandler ) hIt.next();
  -                                    hand.handleElementEvent( event );
  +                                    //hand.handleElementEvent( event );
  +                                    cache.getCompositeCache().addElementEvent( 
hand, event );
                                   }
                               }
   
  @@ -232,7 +237,8 @@
                                   while ( hIt.hasNext() )
                                   {
                                       IElementEventHandler hand = ( 
IElementEventHandler ) hIt.next();
  -                                    hand.handleElementEvent( event );
  +                                    //hand.handleElementEvent( event );
  +                                    cache.getCompositeCache().addElementEvent( 
hand, event );
                                   }
                               }
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to