org.jcsp.plugNplay.ints
Class MultiplexInt
java.lang.Object
org.jcsp.plugNplay.ints.MultiplexInt
- All Implemented Interfaces:
- CSProcess
public final class MultiplexInt
- extends 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 be
de-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 ();
}
}
- Author:
- P.H. Welch and P.D. Austin
- See Also:
DemultiplexInt
,
ParaplexInt
,
DeparaplexInt
,
PlexInt
Method Summary |
void |
run()
The main body of this process. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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
run
public void run()
- The main body of this process.
- Specified by:
run
in interface CSProcess
Copyright © 1996-2012. All Rights Reserved.