org.apache.excalibur.event.command
Class CommandManager

java.lang.Object
  |
  +--org.apache.excalibur.event.command.CommandManager
All Implemented Interfaces:
Disposable, EventPipeline

public class CommandManager
extends Object
implements EventPipeline, Disposable

The CommandManager handles asynchronous commands from the rest of the system. The only exposed piece is the Queue that other components use to give Commands to this system. You must register this with a ThreadManager for it to work.

Source Example


 //
 // Set up the ThreadManager that the CommandManager will use
 //

 ThreadManager threadManager = new TPCThreadManager();
 threadManager.enableLogging( getLogger().getChildLogger("threadmanager") );
 Parameters params = new Parameters();
 params.setParameter( "threads-per-processor", "2" );
 params.setParameter( "sleep-time", "1000" );
 params.setParameter( "block-timeout", "250" );
 threadManager.parameterize( params );
 threadManager.initialize();

 //
 // Set up the CommandManager
 //

 CommandManager commandManager = new CommandManager();
 threadManager.register( commandManager );
 

Author:
Berin Loritsch

Constructor Summary
CommandManager()
          Create the CommandManager
 
Method Summary
 void deregisterSignalHandler(Signal signal, EventHandler handler)
          Deregister a Signal with an EventHandler.
 void dispose()
          When you are done with CommandManager, call this and it will clean up all its resources.
 Sink getCommandSink()
          Get the Command Sink so that you can enqueue new commands.
 EventHandler getEventHandler()
          Used by the ThreadManager to get the EventHandler for the CommandManager.
 Source[] getSources()
          Used by the Threadmanager to get the sources that are feeding the CommandManager.
 void registerSignalHandler(Signal signal, EventHandler handler)
          Register a Signal with an EventHandler.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CommandManager

public CommandManager()
Create the CommandManager

Method Detail

getCommandSink

public final Sink getCommandSink()
Get the Command Sink so that you can enqueue new commands.

Returns:
the Sink that feeds the CommandManager

registerSignalHandler

public final void registerSignalHandler(Signal signal,
                                        EventHandler handler)
Register a Signal with an EventHandler. The Signal is a special object that implements the Signal interface. When CommandManager recieves events that match the Signal, it will send a copy of it to all the EventHandlers attached to it.

Parameters:
signal - The signal we are listening for.
handler - The handler that wants to be notified

deregisterSignalHandler

public final void deregisterSignalHandler(Signal signal,
                                          EventHandler handler)
Deregister a Signal with an EventHandler. Stop notifying the particular EventHandler that is passed in about the associated Signal.

Parameters:
signal - The signal we are listening for.
handler - The handler that wants to be notified

dispose

public void dispose()
When you are done with CommandManager, call this and it will clean up all its resources.

Specified by:
dispose in interface Disposable

getSources

public final Source[] getSources()
Used by the Threadmanager to get the sources that are feeding the CommandManager.

Specified by:
getSources in interface EventPipeline
Returns:
the Array of one Source

getEventHandler

public final EventHandler getEventHandler()
Used by the ThreadManager to get the EventHandler for the CommandManager.

Specified by:
getEventHandler in interface EventPipeline
Returns:
the EventHandler


Copyright © 2002 Apache Avalon Project. All Rights Reserved.