Package org.jcsp.lang

# Interface One2OneChannelSymmetric

public interface One2OneChannelSymmetric
This defines the interface for a symmetric one-to-one Object channel. The symmetry relates to the use of its channel ends as `guards` in an `Alternative`: both ends may be so used.

The only methods provided are to obtain the ends of the channel, through which all reading and writing operations are done. Only an appropriate channel-end should be plugged into a process – not the whole channel. A process may use its external channels in one direction only – either for writing or reading.

Actual channels conforming to this interface are made using the relevant `static` construction methods from `Channel`. Only fully `synchronising` channels are currently supported.

## Description

`One2OneChannelImpl` is an interface for a symmetric one-to-one Object channel. Multiple readers or multiple writers are not allowed.

Both the reading and writing processes may ``ALT`` on this channel.

The semantics of the channel is that of CSP – i.e. it is zero-buffered and fully synchronised. The reading process must wait for a matching writer and vice-versa.

These channels may be constructed by the `Channel.one2oneSymmetric()`. Channel poisoning and buffering are not currently supported for these channels.

Author:
  P.H. Welch, N.C.C. Brown
See Also:
  - `Alternative`
  - `One2OneChannel`

## Method Summary

Modifier and Type
Method
Description
`AltingChannelInput`
`in()`
Returns the input channel end.
`AltingChannelOutput`
`out()`
Returns the output channel end.

## Method Details

### in

AltingChannelInput in()
Returns the input channel end.

### out

AltingChannelOutput out()
Returns the output channel end.