Package org.jcsp.plugNplay.ints

# Class PrefixInt

java.lang.Object
org.jcsp.plugNplay.ints.PrefixInt

All Implemented Interfaces:
  `CSProcess`

public final class PrefixInt extends Object implements CSProcess
Prefixes a user-supplied integer to the `int` stream flowing through.

## Process Diagram

## Description

This is a process which first outputs a given integer and then copies its input stream of integers to its output stream.

One output is gererated before any input but, thereafter, one output is produced for each input.

## Channel Protocols

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

## Implementation Note

The implementation uses an `IdentityInt` process for the copy loop:

       public void run () {
         out.write (n);                        // prefix the given integer to the stream
         new IdentityInt (in, out).run ();     // copy the stream
       }

Author:
  P.H. Welch and P.D. Austin

## Constructor Summary

Constructors
Constructor
Description
`PrefixInt(int n, ChannelInputInt in, ChannelOutputInt out)`
Construct a new PrefixInt process with the input Channel in and the output Channel out.

## 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`

## Constructor Details

### PrefixInt

public PrefixInt(int n, ChannelInputInt in, ChannelOutputInt out)
Construct a new PrefixInt process with the input Channel in and the output Channel out.

Parameters:
  `n` - the initial int to be sent down the Channel.
  `in` - the input Channel
  `out` - the output Channel

## Method Details

### run

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

Specified by:
  `run` in interface `CSProcess`