Package org.eclipse.emf.cdo.util

# Interface CDOUpdatable

All Known Subinterfaces:
  `CDOFileTransaction`, `CDONestedTransaction`, `CDONet4jSession`, `CDOSession`, `CDOSession`, `CDOTransaction`, `CDOView`, `DelegatingCDOTransaction`, `InternalCDOSession`, `InternalCDOTransaction`, `InternalCDOView`

All Known Implementing Classes:
  `CDOPushTransaction`

public interface CDOUpdatable
Represents facilities that can receive `passive updates`.

Since:
  3.0
Author:
  Eike Stepper
No Implement
  This interface is not intended to be implemented by clients.
No Extend
  This interface is not intended to be extended by clients.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final long`
`NO_TIMEOUT`

## Method Summary

Modifier and Type
Method
Description
`long`
`getLastUpdateTime()`
Returns the time stamp of the last commit operation.
`boolean`
`runAfterUpdate(long updateTime, Runnable runnable)`
`void`
`waitForUpdate(long updateTime)`
Blocks the calling thread until a commit operation with the given time stamp (or higher) has occurred.
`boolean`
`waitForUpdate(long updateTime, long timeoutMillis)`
Blocks the calling thread until a commit operation with the given time stamp (or higher) has occurred or the given timeout has expired.

## Field Details

### NO_TIMEOUT

static final long NO_TIMEOUT

See Also:
  - Constant Field Values

## Method Details

### getLastUpdateTime

long getLastUpdateTime()
Returns the time stamp of the last commit operation. May not be accurate if `passive updates` are disabled.

### waitForUpdate

void waitForUpdate(long updateTime)
Blocks the calling thread until a commit operation with the given time stamp (or higher) has occurred.

Parameters:
  `updateTime` - the time stamp of the update to wait for in milliseconds since Unix epoch.

### waitForUpdate

boolean waitForUpdate(long updateTime, long timeoutMillis)
Blocks the calling thread until a commit operation with the given time stamp (or higher) has occurred or the given timeout has expired.

Parameters:
  `updateTime` - the time stamp of the update to wait for in milliseconds since Unix epoch.
  `timeoutMillis` - the maximum number of milliseconds to wait for the update to occur, or `NO_TIMEOUT` to wait indefinitely.
Returns:
  `true` if the specified commit operation has occurred within the given timeout period, `false` otherwise.

### runAfterUpdate

boolean runAfterUpdate(long updateTime, Runnable runnable)

Since:
  4.3