Package org.jcsp.plugNplay.ints

# Class ProcessWriteInt

java.lang.Object
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

Fields
Modifier and Type
Field
Description
`int`
`value`
The `int` to be written to the channel

## Constructor Summary

Constructors
Constructor
Description
`ProcessWriteInt(ChannelOutputInt out)`
Construct a new `ProcessWriteInt`.

## Method Summary

Modifier and Type
Method
Description
`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 Details

### value

public int value
The `int` to be written to the channel

## Constructor Details

### ProcessWriteInt

public ProcessWriteInt(ChannelOutputInt out)
Construct a new `ProcessWriteInt`.

Parameters:
  `out` - the channel to which to write

## Method Details

### run

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

Specified by:
  `run` in interface `CSProcess`