Package org.jcsp.lang

# Interface ChannelOutputInt

All Superinterfaces:
  `Poisonable`

All Known Subinterfaces:
  `SharedChannelOutputInt`

All Known Implementing Classes:
  `AltingChannelOutputInt`, `BlackHoleChannelInt`

public interface ChannelOutputInt extends Poisonable
This defines the interface for writing to integer channels.

A writing-end, conforming to this interface, is obtained from a channel by invoking its `out()` method.

## Description

`ChannelOutputInt` defines the interface for writing to integer channels. The interface contains only one method - `write(int o)`. This method will block the calling process until the `int` has been accepted by the channel. In the (default) case of a zero-buffered synchronising CSP channel, this happens only when a process at the other end of the channel invokes (or has already invoked) a `read()`.

`ChannelOutputInt` variables are used to hold integer channels that are going to be used only for output by the declaring process. This is a security matter -- by declaring a `ChannelOutputInt` interface, any attempt to input from the channel will generate a compile-time error. For example, the following code fragment will not compile:

     int doRead (ChannelOutputInt c) {
       return c.read ();   // illegal
     }

When configuring a `CSProcess` with output integer channels, they should be declared as `ChannelOutputInt` variables. The actual channel passed, of course, may belong to any channel class that implements `ChannelOutputInt`.

## Example

     void doWrite (ChannelOutputInt c, int i) {
       c.write (i);
     }

Author:
  P.D. Austin
See Also:
  - `SharedChannelOutputInt`
  - `ChannelInputInt`

## Method Summary

Modifier and Type
Method
Description
`void`
`write(int i)`
Write an int to the channel.

### Methods inherited from interface org.jcsp.lang.Poisonable

`poison`

## Method Details

### write

void write(int i)
Write an int to the channel.

Parameters:
  `i` - the integer to write to the channel