Package org.jcsp.lang

# Class Guard

java.lang.Object
org.jcsp.lang.Guard

Direct Known Subclasses:
  `AltingBarrier`, `AltingChannelAccept`, `AltingChannelInput`, `AltingChannelInputInt`, `AltingChannelOutput`, `AltingChannelOutputInt`, `AltingConnectionClient`, `AltingConnectionServer`, `CSTimer`, `InlineAlternative`, `Skip`, `Stop`

public abstract class Guard extends Object
This is the super-class for all `Alternative` events selectable by a process.

## Description

`Guard` defines an abstract interface to be implemented by events competing for selection by a process executing an `Alternative`. Its methods have only package visibility within `org.jcsp.lang` and are of no concern to users of this package. Currently, JCSP supports channel inputs, accepts, timeouts and skips as guards.

Note: for those familiar with the occam multiprocessing language, classes implementing `Guard` correspond to process guards for use within `ALT` constructs.

Author:
  P.D. Austin, P.H. Welch
See Also:
  - `CSTimer`
  - `Skip`
  - `AltingChannelInput`
  - `AltingChannelInputInt`
  - `Alternative`

## Constructor Summary

Constructors
Constructor
Description
`Guard()`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`schedule(Alternative alt)`
Schedules the process performing the given Alternative to run again.

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

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

## Constructor Details

### Guard

public Guard()

## Method Details

### schedule

protected void schedule(Alternative alt)
Schedules the process performing the given Alternative to run again. This is intended for use by advanced users of the library who want to create their own Guards that are not in the org.jcsp.lang package.

Parameters:
  `alt` - The Alternative to schedule