- All Implemented Interfaces:
public abstract class AbstractSignalReceiver extends Object implements SignalReceiver
registerSignalHandler(SignalHandler)method. This class will generate values in the form of
- The receiverId part is given by the parameter in the
init(String)method and must be set by the implementing subclass.
- The handlerId part is given by calling
getLocalSignalHandlerId(SignalHandler). This method may be overridden by subclasses that needs a different method of local ID generation. The important thing is that the ID is unique among all registered signal handlers.
- The supportedSignals part is created by joining all signal ID:s
SignalHandler.getSupportedSignals()into a comma-separated string.
AbstractSignalTransportercontains methods for parsing this scheme and make the information available to subclasses as a
URIand as higher-level objects.
Subclasses should override the
getGlobalSignalId(SignalHandler) if they
want to use a different ID generation scheme.
- Last modified
- $Date: 2015-05-12 11:27:08 +0200 (ti, 12 maj 2015) $
Constructors Modifier Constructor Description
()Create a new signal receiver.
Modifier and Type Method Description
(int wait)Close this signal receiver.
SignalHandler handler)(Generate a signal ID string.
SignalHandler handler)(Get the local signal handler id of the given signal handler.
()Get the receiver ID that was passed to the
String localId)(Get the signal handler with a given ID.
String receiverId)(Initialise the signal receiver.
String message)(Process a signal message.
SignalHandler handler)(Register a signal handler with this receiver.
SignalSender sender)(Let the signal sender send one or more signals to all registered signal handlers on this reciever.
SignalHandler handler)(Unregister a signal handler.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
AbstractSignalReceiverprotected AbstractSignalReceiver()Create a new signal receiver.
initpublic void init(String receiverId)Initialise the signal receiver.
closepublic void close(int wait)Close this signal receiver. If a subclass overrides this method it should call
super.close()if it wants to use the default shutdown notification to signal handlers. This implementation will start a separate notification thread that first sends the
Signal.SHUTDOWNsignal to all registered handlers, and then
Signal.ABORTsignal to all that are still alive after the shutdown signal. The current thread will wait at most the given time. If the number of registered handlers goes down to 0 before the time has ended the current thread will be awakened so it can continue. Note that the notification thread will usually finish in a short time, but it may take longer for all worker thread of each job to react to the signal.
registerSignalHandlerRegister a signal handler with this receiver.
unregisterSignalHandlerpublic void unregisterSignalHandler(SignalHandler handler)Unregister a signal handler.
sendToAllpublic void sendToAll(SignalSender sender)Description copied from interface:
SignalReceiverLet the signal sender send one or more signals to all registered signal handlers on this reciever.
getReceiverIdprotected String getReceiverId()Get the receiver ID that was passed to the
getGlobalSignalIdGenerate a signal ID string. This string is returned by the
registerSignalHandler(SignalHandler)method and is used in
SignalTransporter.init(String)method to initialise a transporter object so that it can send signals to the specified handler. See the class documentation for a description of the format of the generated string. The string is of the format:
See class description for detailed information.
handler- The signal handler to generate the ID for
- The signal handler ID
getLocalSignalHandlerIdGet the local signal handler id of the given signal handler. This implementation generates a unique ID for the handler.
handler- The handler to get the id for
- The local handler id
getSignalHandlerGet the signal handler with a given ID.
localId- The local signal handler ID as returned by the
- The signal handler, or null if no handler is found
processSignalMessageprotected void processSignalMessage(String message)Process a signal message. If the message can't be understood or if no handler can be found this method does nothing. The signal will be delivered to the signal handler in the current thread.
message- The message to process, the format of the message must be compatible with the message that