|
Rice Pastry API | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.lang.Thread rice.selector.SelectorManager
This class is the class which handles the selector, and listens for activity. When activity occurs, it figures out who is interested in what has happened, and hands off to that object.
Field Summary | |
protected java.util.HashSet |
cancelledKeys
DESCRIBE THE FIELD |
protected java.lang.String |
instance
DESCRIBE THE FIELD |
protected java.util.LinkedList |
invocations
DESCRIBE THE FIELD |
protected Logger |
logger
DESCRIBE THE FIELD |
protected java.util.HashSet |
modifyKeys
DESCRIBE THE FIELD |
protected boolean |
running
DESCRIBE THE FIELD |
protected java.nio.channels.Selector |
selector
DESCRIBE THE FIELD |
static int |
TIMEOUT
DESCRIBE THE FIELD |
protected java.util.TreeSet |
timerQueue
DESCRIBE THE FIELD |
protected TimeSource |
timeSource
DESCRIBE THE FIELD |
protected long |
wakeupTime
DESCRIBE THE FIELD |
Fields inherited from class java.lang.Thread |
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Constructor Summary | |
SelectorManager(java.lang.String instance,
TimeSource timeSource,
LogManager log)
Constructor, which is private since there is only one selector per JVM. |
Method Summary | |
void |
addLoopObserver(LoopObserver lo)
Adds a feature to the LoopObserver attribute of the SelectorManager object |
void |
cancel(java.nio.channels.SelectionKey key)
Method which asks the Selector Manager to add the given key to the cancelled set. |
void |
destroy()
DESCRIBE THE METHOD |
protected void |
doInvocations()
Method which invokes all pending invocations. |
protected void |
doSelections()
DESCRIBE THE METHOD |
protected void |
executeDueTasks()
Internal method which finds all due tasks and executes them. |
protected java.lang.Runnable |
getInvocation()
Method which synchroniously returns the first element off of the invocations list. |
java.nio.channels.SelectionKey |
getKey(java.nio.channels.SelectableChannel channel)
Utility method which returns the SelectionKey attached to the given channel, if one exists |
protected java.nio.channels.SelectionKey |
getModifyKey()
Method which synchroniously returns on element off of the modifyKeys list |
int |
getNumInvocations()
Debug method which returns the number of pending invocations |
java.nio.channels.Selector |
getSelector()
Gets the Selector attribute of the SelectorManager object |
Timer |
getTimer()
Returns the timer associated with this SelectorManager (in this case, it is this). |
void |
invoke(java.lang.Runnable d)
This method schedules a runnable task to be done by the selector thread during the next select() call. |
boolean |
isSelectorThread()
Returns whether or not this thread of execution is the selector thread |
void |
modifyKey(java.nio.channels.SelectionKey key)
Adds a selectionkey handler into the list of handlers which wish to change their keys. |
protected void |
notifyLoopListeners()
DESCRIBE THE METHOD |
protected void |
onLoop()
This method is to be implemented by a subclass to do some task each loop. |
java.nio.channels.SelectionKey |
register(java.nio.channels.SelectableChannel channel,
SelectionKeyHandler handler,
int ops)
Registers a new channel with the selector, and attaches the given SelectionKeyHandler as the handler for the newly created key. |
void |
removeLoopObserver(LoopObserver lo)
DESCRIBE THE METHOD |
void |
run()
This method starts the socket manager listening for events. |
void |
schedule(TimerTask task,
long delay)
Method which schedules a task to run after a specified number of millis |
void |
schedule(TimerTask task,
long delay,
long period)
Method which schedules a task to run repeatedly after a specified delay and period |
void |
scheduleAtFixedRate(TimerTask task,
long delay,
long period)
Method which schedules a task to run repeatedly (at a fixed rate) after a specified delay and period |
protected java.nio.channels.SelectionKey[] |
selectedKeys()
Selects all of the currenlty selected keys on the selector and returns the result as an array of keys. |
Methods inherited from class java.lang.Thread |
activeCount, checkAccess, countStackFrames, currentThread, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected java.nio.channels.Selector selector
protected java.util.LinkedList invocations
protected java.util.HashSet modifyKeys
protected java.util.HashSet cancelledKeys
protected java.util.TreeSet timerQueue
protected long wakeupTime
protected TimeSource timeSource
protected Logger logger
protected java.lang.String instance
protected boolean running
public static int TIMEOUT
Constructor Detail |
public SelectorManager(java.lang.String instance, TimeSource timeSource, LogManager log)
instance
- DESCRIBE THE PARAMETERtimeSource
- DESCRIBE THE PARAMETERlog
- DESCRIBE THE PARAMETERMethod Detail |
public java.nio.channels.SelectionKey getKey(java.nio.channels.SelectableChannel channel)
channel
- The channel to return the key for
public int getNumInvocations()
protected java.lang.Runnable getInvocation()
protected java.nio.channels.SelectionKey getModifyKey()
public boolean isSelectorThread()
public Timer getTimer()
public java.nio.channels.Selector getSelector()
public void cancel(java.nio.channels.SelectionKey key)
key
- The key to cancelpublic java.nio.channels.SelectionKey register(java.nio.channels.SelectableChannel channel, SelectionKeyHandler handler, int ops) throws java.io.IOException
channel
- The channel to regster with the selectorhandler
- The handler to use for the callbacksops
- The initial interest operations
java.io.IOException
- DESCRIBE THE EXCEPTIONpublic void invoke(java.lang.Runnable d)
d
- The runnable task to invokepublic void modifyKey(java.nio.channels.SelectionKey key)
key
- The key which is to be chanegdprotected void onLoop()
public void run()
run
in interface java.lang.Runnable
public void destroy()
destroy
in interface Destructable
protected void notifyLoopListeners()
public void addLoopObserver(LoopObserver lo)
lo
- The feature to be added to the LoopObserver attributepublic void removeLoopObserver(LoopObserver lo)
lo
- DESCRIBE THE PARAMETERprotected void doSelections() throws java.io.IOException
java.io.IOException
- DESCRIBE THE EXCEPTIONprotected void doInvocations()
protected java.nio.channels.SelectionKey[] selectedKeys() throws java.io.IOException
java.io.IOException
- DESCRIBE THE EXCEPTIONpublic void schedule(TimerTask task, long delay)
schedule
in interface Timer
task
- The task to rundelay
- The delay before running, in millisecondspublic void schedule(TimerTask task, long delay, long period)
schedule
in interface Timer
task
- The task to rundelay
- The delay before first running, in millisecondsperiod
- The period with which to run in millisecondspublic void scheduleAtFixedRate(TimerTask task, long delay, long period)
scheduleAtFixedRate
in interface Timer
task
- The task to rundelay
- The delay before first running in millisecondsperiod
- The period with which to run in millisecondsprotected void executeDueTasks()
|
Rice Pastry API | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |