com.duowan.mobile.netroid
Class CacheDispatcher

java.lang.Object
  extended by java.lang.Thread
      extended by com.duowan.mobile.netroid.CacheDispatcher
All Implemented Interfaces:
java.lang.Runnable

public class CacheDispatcher
extends java.lang.Thread

Provides a thread for performing cache triage on a queue of requests. Requests added to the specified cache queue are resolved from cache. Any deliverable response is posted back to the caller via a Delivery. Cache misses and responses that require refresh are enqueued on the specified network queue for processing by a NetworkDispatcher.


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
CacheDispatcher(java.util.concurrent.BlockingQueue<Request> cacheQueue, java.util.concurrent.BlockingQueue<Request> networkQueue, DiskCache cache, Delivery delivery)
          Creates a new cache triage dispatcher thread.
 
Method Summary
 void quit()
          Forces this dispatcher to quit immediately.
 void run()
           
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CacheDispatcher

public CacheDispatcher(java.util.concurrent.BlockingQueue<Request> cacheQueue,
                       java.util.concurrent.BlockingQueue<Request> networkQueue,
                       DiskCache cache,
                       Delivery delivery)
Creates a new cache triage dispatcher thread. You must call Thread.start() in order to begin processing.

Parameters:
cacheQueue - Queue of incoming requests for triage
networkQueue - Queue to post requests that require network to
cache - Cache interface to use for resolution
delivery - Delivery interface to use for posting responses
Method Detail

quit

public void quit()
Forces this dispatcher to quit immediately. If any requests are still in the queue, they are not guaranteed to be processed.


run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread