Package org.jcsp.plugNplay.ints
Class MultiplexInt
- java.lang.Object
-
- org.jcsp.plugNplay.ints.MultiplexInt
-
- All Implemented Interfaces:
CSProcess
public final class MultiplexInt extends java.lang.Object implements CSProcess
Fair multiplexes its input integer stream array into one output stream (carrying source channel and data pairs).Process Diagram
Description
MultiplexInt is a process to convert multiple streams of ints to a single stream in such a way that it can bede-multiplexed
later. The protocol on the outgoing multiplexed stream consists of an int, that represents the channel identity of the multiplexed data, followed by the multiplexed data.The ordering of the channels in the in array makes no difference to the functionality of this process -- the multiplexing services all channels fairly.
Channel Protocols
Input Channels in[] int All channels in this package carry integers. Output Channels out int, int An out message is an index followed by the multiplexed data. Example
The following example shows how to use MultiplexInt in a small program.import org.jcsp.lang.*; import org.jcsp.plugNplay.ints.*; public class MultiplexIntExample { public static void main (String[] argv) { final One2OneChannelInt[] a = Channel.one2oneIntArray (3); final One2OneChannelInt b = Channel.one2oneInt (); new Parallel ( new CSProcess[] { new NumbersInt (a[0].out ()), new FibonacciInt (a[1].out ()), new SquaresInt (a[2].out ()), new MultiplexInt (Channel.getInputArray (a), b.out ()), new CSProcess () { public void run () { String[] key = {"Numbers ", " Fibonacci ", " Squares "}; while (true) { System.out.print (key[b.in ().read ()]); // print channel source System.out.println (b.in ().read ()); // print multiplexed data } } } } ).run (); } }
- See Also:
DemultiplexInt
,ParaplexInt
,DeparaplexInt
,PlexInt
-
-
Field Summary
Fields Modifier and Type Field Description private AltingChannelInputInt[]
in
The input channelsprivate ChannelOutputInt
out
The output channel
-
Constructor Summary
Constructors Constructor Description MultiplexInt(AltingChannelInputInt[] in, ChannelOutputInt out)
Construct a new MultiplexInt process with the input Channel in and the output Channels out.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
run()
The main body of this process.
-
-
-
Field Detail
-
in
private final AltingChannelInputInt[] in
The input channels
-
out
private final ChannelOutputInt out
The output channel
-
-
Constructor Detail
-
MultiplexInt
public MultiplexInt(AltingChannelInputInt[] in, ChannelOutputInt out)
Construct a new MultiplexInt process with the input Channel in and the output Channels out. The ordering of the Channels in the in array make no difference to the functionality of this process -- the multiplexing services all channels fairly.- Parameters:
in
- the input channelsout
- the output channel
-
-