Package org.jcsp.plugNplay
Class Multiplex
java.lang.Object
org.jcsp.plugNplay.Multiplex
- All Implemented Interfaces:
CSProcess
Fair multiplexes its input Object stream array into one output stream
(carrying source channel and data pairs).
Process Diagram
Description
Multiplex is a process to convert multiple streams of objects to a single stream in such a way that it can bede-multiplexed
later.
The protocol on the outgoing multiplexed stream consists of
an Integer, 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[] | java.lang.Object | The input streams. |
Output Channels | ||
out | java.lang.Integer, java.lang.Object | The channel 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.*; public class MultiplexExample { public static void main (String[] argv) { final One2OneChannel[] a = Channel.one2oneArray (3); final One2OneChannel b = Channel.one2one (); new Parallel ( new CSProcess[] { new Numbers (a[0].out ()), new Fibonacci (a[1].out ()), new Squares (a[2].out ()), new Multiplex (Channel.getInputArray (a), b.out ()), new CSProcess () { public void run () { String[] key = {"Numbers ", " Fibonacci ", " Squares "}; while (true) { int channel = ((Integer) b.in ().read ()).intValue (); System.out.print (key[channel]); // print channel source int n = ((Integer) b.in ().read ()).intValue (); System.out.println (n); // print multiplexed data } } } } ).run (); } }
- Author:
- P.H. Welch and P.D. Austin and P.H. Welch
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionMultiplex
(AltingChannelInput[] in, ChannelOutput out) Construct a new Multiplex process with the input Channel in and the output Channels out. -
Method Summary
-
Constructor Details
-
Multiplex
Construct a new Multiplex 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
-
-
Method Details