public final class RealtimeSignalDispatcher extends ActiveEventDispatcher<RealtimeSignalDispatcher,RealtimeSignal>
RealtimeSignal
instances,
each when its respective signal is triggered. An application can provide
its own dispatcher, providing the priority for the internal dispatching
thread. This dispatching thread calls the
AsyncLongEvent.fire(long)
method on the instance of
RealtimeSignal
associated with the signal each time its
signal is triggered.
This class requires the following permissions:
Method | Required Action for POSIXPermission |
---|---|
setDefaultDispatcher(javax.realtime.posix.RealtimeSignalDispatcher) |
system |
RealtimeSignal
,
POSIXPermission
Constructor and Description |
---|
RealtimeSignalDispatcher(SchedulingParameters schedule)
Creates a new dispatcher, whose dispatching thread runs with the given
SchedulingParameters . |
RealtimeSignalDispatcher(SchedulingParameters schedule,
RealtimeThreadGroup group)
Creates a new dispatcher, whose dispatching thread runs with the given
SchedulingParameters . |
Modifier and Type | Method and Description |
---|---|
protected void |
activate(RealtimeSignal target)
Activate an active event registered with this
dispatcher.
|
protected void |
deactivate(RealtimeSignal target)
Deactivate an active event registered with this dispatcher.
|
protected void |
deregister(RealtimeSignal target)
Deregisters an active event from this dispatcher, breaking its
association with this dispatcher.
|
void |
destroy()
Releases all reasources thereby making the dispatcher unusable.
|
boolean |
isRegistered(RealtimeSignal target)
Test wether or not a given event is registered with this
dispatcher.
|
protected void |
register(RealtimeSignal target)
Registers an active event with this dispatcher.
|
static void |
setDefaultDispatcher(RealtimeSignalDispatcher dispatcher)
Sets the system default realtime signal dispatcher.
|
getRealtimeThreadGroup, getScheduler, getSchedulingParameters, getThread, setScheduler, setScheduler, setSchedulingParameters
public RealtimeSignalDispatcher(SchedulingParameters schedule, RealtimeThreadGroup group) throws StaticIllegalStateException
SchedulingParameters
.schedule
- Parameters for scheduling this dispatcher.group
- Container for this dispatcher.StaticIllegalStateException
- when the intersection of affinity
in schedule
and the affinity of group
does not
correspond to a valid affinity.public RealtimeSignalDispatcher(SchedulingParameters schedule) throws StaticIllegalStateException
SchedulingParameters
.schedule
- Parameters for scheduling this dispatcher.StaticIllegalStateException
- when the intersection of affinity
in schedule
and the affinity of the current thread group
does not correspond to a valid affinity.public static void setDefaultDispatcher(RealtimeSignalDispatcher dispatcher)
dispatcher
- The instance to be used when the next realtime signal
is started. When null
, the realtime signal dispatcher
is set to the original system default.public boolean isRegistered(RealtimeSignal target)
isRegistered
in class ActiveEventDispatcher<RealtimeSignalDispatcher,RealtimeSignal>
target
- The event to testtrue
when event
is registered with this
dispatcher.protected void register(RealtimeSignal target) throws RegistrationException, StaticIllegalStateException
register
in class ActiveEventDispatcher<RealtimeSignalDispatcher,RealtimeSignal>
target
- The event to registerRegistrationException
- when event
is already
registered.StaticIllegalStateException
- when this object has been destroyed.protected void activate(RealtimeSignal target) throws StaticIllegalStateException
activate
in class ActiveEventDispatcher<RealtimeSignalDispatcher,RealtimeSignal>
target
- The event to registerStaticIllegalStateException
- when event
is
stopped.protected void deregister(RealtimeSignal target) throws DeregistrationException, StaticIllegalStateException
deregister
in class ActiveEventDispatcher<RealtimeSignalDispatcher,RealtimeSignal>
target
- The event to deregisterStaticIllegalStateException
- when this object has been
destroyedDeregistrationException
protected void deactivate(RealtimeSignal target) throws StaticIllegalStateException
deactivate
in class ActiveEventDispatcher<RealtimeSignalDispatcher,RealtimeSignal>
target
- The event to deregisterStaticIllegalStateException
- when this object has been destroyed.public void destroy() throws StaticIllegalStateException
destroy
in class ActiveEventDispatcher<RealtimeSignalDispatcher,RealtimeSignal>
StaticIllegalStateException
- when called on
a dispatcher that has one or more registered
RealtimeSignal
objects.