# Event (sshj 0.4.0 API)
Date: 2011-06-06

## net.schmizz.concurrent
Class Event<T extends Throwable>

    java.lang.Object
      net.schmizz.concurrent.Event<T>

    public class Event<T extends Throwable>

extends Object

An event can be set, cleared, or awaited, similar to Python's `threading.event`. The key difference is that a waiter may be delivered an exception of parameterized type `T`.

Uses `Promise` under the hood.

Constructor Summary
`Event(String name, ExceptionChainer<T> chainer)` Creates this event with given `name` and exception `chainer`.
`Event(String name, ExceptionChainer<T> chainer, ReentrantLock lock)` Creates this event with given `name`, exception `chainer`, and associated `lock`.

Method Summary
`void` `await()` Await this event to have a definite `true` or `false` value.
`void` `await(long timeout, TimeUnit unit)` Await this event to have a definite `true` or `false` value, for `timeout` duration.
`void` `clear()` Clear this event.
`void` `deliverError(Throwable t)` Deliver the error `t` (after chaining) to any present or future waiters.
`boolean` `hasWaiters()`
`boolean` `inError()`
`boolean` `isSet()`
`void` `lock()` Acquire the lock associated with this event.
`void` `set()` Sets this event to be `true`.
`String` `toString()`
`boolean` `tryAwait(long timeout, TimeUnit unit)` Await this event to have a definite `true` or `false` value, for `timeout` duration.
`void` `unlock()` Release the lock associated with this event.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Event

    public Event(String name,
                 ExceptionChainer<T> chainer)

  Creates this event with given `name` and exception `chainer`. Allocates a new `Lock` object for this event.

  Parameters:
    `name` - name of this event
    `chainer` - `ExceptionChainer` that will be used for chaining exceptions

### Event

    public Event(String name,
                 ExceptionChainer<T> chainer,
                 ReentrantLock lock)

  Creates this event with given `name`, exception `chainer`, and associated `lock`.

  Parameters:
    `name` - name of this event
    `chainer` - `ExceptionChainer` that will be used for chaining exceptions
    `lock` - lock to use

Method Detail

### set

    public void set()

  Sets this event to be `true`. Short for `set(true)`.

### clear

    public void clear()

  Clear this event. A cleared event `!isSet()`.

### deliverError

    public void deliverError(Throwable t)

  Deliver the error `t` (after chaining) to any present or future waiters.

### isSet

    public boolean isSet()

  Returns:
    whether this event is in a 'set' state. An event is set by a call to `set()` or `deliverError`

### await

    public void await()
               throws T extends Throwable

  Await this event to have a definite `true` or `false` value.

  Throws:
    `T` - if another thread meanwhile informs this event of an error
    `T extends Throwable`

### await

    public void await(long timeout,
                      TimeUnit unit)
               throws T extends Throwable

  Await this event to have a definite `true` or `false` value, for `timeout` duration.

  Parameters:
    `timeout` - timeout
    `unit` - the time unit for the timeout
  Throws:
    `T` - if another thread meanwhile informs this event of an error, or timeout expires
    `T extends Throwable`

### tryAwait

    public boolean tryAwait(long timeout,
                            TimeUnit unit)
                     throws T extends Throwable

  Await this event to have a definite `true` or `false` value, for `timeout` duration.

  If the definite value is not available when the timeout expires, returns `false`.

  Parameters:
    `timeout` - timeout
    `unit` - the time unit for the timeout
  Throws:
    `T` - if another thread meanwhile informs this event of an error
    `T extends Throwable`

### hasWaiters

    public boolean hasWaiters()

  Returns:
    whether there are any threads waiting on this event to be set.

### inError

    public boolean inError()

  Returns:
    whether this event is in an error state i.e. has been delivered an error.

### lock

    public void lock()

  Acquire the lock associated with this event.

### unlock

    public void unlock()

  Release the lock associated with this event.

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

Copyright © 2009-2011. All Rights Reserved.