Package org.jcsp.plugNplay
Class DynamicDelta
- java.lang.Object
-
- org.jcsp.plugNplay.DynamicDelta
-
- All Implemented Interfaces:
CSProcess
public final class DynamicDelta extends java.lang.Object implements CSProcess
This process broadcasts objects arriving on its input channel in parallel to its output channel array -- those output channels can be changed dynamically.Process Diagram
Description
A DynamicDelta process is a broadcasting node whose array of broadcasting channels can be changed dynamically. Any process can become one of the recipients of the broadcast by sending the DynamicDelta a channel on which it will be listening. A process may leave the broadcast be re-sending that same channel.In each cycle, DynamicDelta waits for either its in or configure channel to become ready, giving priority to configure.
Anything arriving from in is broadcast in parallel down each element of its array of out channels.
The configure channel delivers ChannelOutput channels -- anything else is discarded. If the delivered ChannelOutput channel is not one of the channels already in the output array, it is added -- otherwise it is removed.
Channel Protocols
Input Channels in java.lang.Object The in Channel can accept data of any Class. in org.jcsp.lang.ChannelOutput The configure Channel accepts Objects of type ChannelOutput
only.Output Channels out[] java.lang.Object The output Channels will carry a broadcast of whatever is sent down the in Channel. - Author:
- P.H. Welch and P.D. Austin
-
-
Constructor Summary
Constructors Constructor Description DynamicDelta(AltingChannelInput in, AltingChannelInput config)
Construct a new DynamicDelta process with the input channel in and the configuration channel configure.DynamicDelta(AltingChannelInput in, AltingChannelInput config, ChannelOutput[] out)
Construct a new DynamicDelta process with the input channel in, the configuration channel configure and the initial output channels out.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
run()
The main body of this process.
-
-
-
Constructor Detail
-
DynamicDelta
public DynamicDelta(AltingChannelInput in, AltingChannelInput config)
Construct a new DynamicDelta process with the input channel in and the configuration channel configure.- Parameters:
in
- the input Channelconfig
- the configuration Channel
-
DynamicDelta
public DynamicDelta(AltingChannelInput in, AltingChannelInput config, ChannelOutput[] out)
Construct a new DynamicDelta process with the input channel in, the configuration channel configure and the initial output channels out. The ordering of the channels in the out array make no difference to the functionality of this process.- Parameters:
in
- the input channelconfig
- the configuration channelout
- the output channels
-
-