CSP for Java
(JCSP) 1.1-rc4

org.jcsp.plugNplay.ints
Class ProcessWriteInt

java.lang.Object
  extended by org.jcsp.plugNplay.ints.ProcessWriteInt
All Implemented Interfaces:
CSProcess

public class ProcessWriteInt
extends Object
implements CSProcess

Writes one int to its output channel.

Process Diagram

Description

ProcessWriteInt is a process that performs a single write to its out channel and then terminates. The int that is written must first be placed in the public value field of this process (which is safe to set before and in between process runs).

ProcessWriteInt declaration, construction and use should normally be localised within a single method -- so we feel no embarassment about its public field. Its only (envisaged) purpose is as described in the example below.

Channel Protocols

Output Channels
out int All channels in this package carry integers.

Example

ProcessWriteInt is designed to simplify writing in parallel to channels. Make as many instances as there are channels, binding each instance to a different channel, together with a Parallel object in which to run them:
   ChannelOutputInt out0, out1;
   .
   .
   .
   ProcessWriteInt write0 = new ProcessWriteInt (out0);
   ProcessWriteInt write1 = new ProcessWriteInt (out1);
   CSProcess parWrite01 = new Parallel (new CSProcess[] {out0, out1});
 
The above is best done once, before any looping over the parallel read commences. A parallel write can now be performed at any time (and any number of times) by executing:
     write0.value = ...;   // whatever we want sent down out0
     write1.value = ...;   // whatever we want sent down out1
     parWrite01.run ();
 
This terminates when, and only when, both writes have completed -- the events may occur in any order.

Author:
P.H. Welch and P.D. Austin
See Also:
Parallel, ProcessRead, ProcessWrite, ProcessReadInt

Field Summary
 int value
          The int to be written to the channel
 
Constructor Summary
ProcessWriteInt(ChannelOutputInt out)
          Construct a new ProcessWriteInt.
 
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
 

Field Detail

value

public int value
The int to be written to the channel

Constructor Detail

ProcessWriteInt

public ProcessWriteInt(ChannelOutputInt out)
Construct a new ProcessWriteInt.

Parameters:
out - the channel to which to write
Method Detail

run

public void run()
The main body of this process.

Specified by:
run in interface CSProcess

CSP for Java
(JCSP) 1.1-rc4

Submit a bug or feature to jcsp-team@kent.ac.uk
Version 1.1-rc4 of the JCSP API Specification (Copyright 1997-2008 P.D.Austin and P.H.Welch - All Rights Reserved)
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.