Package org.jcsp.lang

# Class BlackHoleChannelInt

java.lang.Object
org.jcsp.lang.BlackHoleChannelInt

All Implemented Interfaces:
  `ChannelOutputInt`, `Poisonable`

public class BlackHoleChannelInt extends Object implements ChannelOutputInt
This implements `ChannelOutputInt` with black hole semantics.

## Description

`BlackHoleChannelInt` is an implementation of `ChannelOutputInt` that yields black hole semantics for a channel. Writers may always write but there can be no readers. Any number of writers may share the same black hole.

Note: `BlackHoleChannelInt`s are used for masking off unwanted outputs from processes. They are useful when we want to reuse an existing process component intact, but don't need some of its output channels (i.e. we don't want to redesign and reimplement the component to remove the redundant channels). Normal channels cannot be plugged in and left dangling as this may deadlock (parts of) the component being reused.

Author:
  P.H. Welch
See Also:
  - `ChannelOutputInt`
  - `One2OneChannelInt`
  - `Any2OneChannelInt`
  - `One2AnyChannelInt`
  - `Any2AnyChannelInt`

## Constructor Summary

Constructors
Constructor
Description
`BlackHoleChannelInt()`

## Method Summary

Modifier and Type
Method
Description
`void`
`poison(int strength)`
This injects poison into the channel.
`void`
`write(int n)`
Write an integer to the channel and loose it.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### BlackHoleChannelInt

public BlackHoleChannelInt()

## Method Details

### write

public void write(int n)
Write an integer to the channel and loose it.

Specified by:
  `write` in interface `ChannelOutputInt`
Parameters:
  `n` - the integer to write to the channel.

### poison

public void poison(int strength)
Description copied from interface: `Poisonable`
This injects poison into the channel. If the channel was not explicitly constructed to be poisonable or if the strength of poison is not greater than the channel immunity level, the poison will have no effect.

Specified by:
  `poison` in interface `Poisonable`
Parameters:
  `strength` - the strength of the poison (must be >= 0).