Package org.eclipse.net4j.signal

# Class RequestWithMonitoring<RESULT>

java.lang.Object
org.eclipse.net4j.signal.Signal
org.eclipse.net4j.signal.SignalActor
org.eclipse.net4j.signal.RequestWithConfirmation<RESULT>
org.eclipse.net4j.signal.RequestWithMonitoring<RESULT>

All Implemented Interfaces:
  `Runnable`, `org.eclipse.net4j.util.container.IManagedContainerProvider`

Direct Known Subclasses:
  `AuthenticationRequest`, `ConfirmationRequest`

public abstract class RequestWithMonitoring<RESULT> extends RequestWithConfirmation<RESULT>
Represents the sender side of a two-way `signal` with additional support for remote progress monitoring.

Since:
  2.0
Author:
  Eike Stepper

## Field Summary

Fields
Modifier and Type
Field
Description
`static final long`
`DEFAULT_CANCELATION_POLL_INTERVAL`
`static final int`
`DEFAULT_MONITOR_PROGRESS_SECONDS`
`static final int`
`DEFAULT_MONITOR_TIMEOUT_SECONDS`

### Fields inherited from class org.eclipse.net4j.signal.Signal

`NO_TIMEOUT`

## Constructor Summary

Constructors
Constructor
Description
`RequestWithMonitoring(SignalProtocol<?> protocol, short signalID)`
`RequestWithMonitoring(SignalProtocol<?> protocol, short id, String name)`
`RequestWithMonitoring(SignalProtocol<?> protocol, Enum<?> literal)`

## Method Summary

Modifier and Type
Method
Description
`protected final RESULT`
`confirming(org.eclipse.net4j.util.io.ExtendedDataInputStream in)`
Important Note: The confirmation must not be empty, i.e.
`protected abstract RESULT`
`confirming(org.eclipse.net4j.util.io.ExtendedDataInputStream in, org.eclipse.net4j.util.om.monitor.OMMonitor monitor)`
Important Note: The confirmation must not be empty, i.e.
`protected ExecutorService`
`getCancelationExecutorService()`
`protected long`
`getCancelationPollInterval()`
`protected int`
`getConfirmingWorkPercent()`
`protected int`
`getMonitorProgressSeconds()`
`protected int`
`getMonitorTimeoutSeconds()`
`protected int`
`getRequestingWorkPercent()`
`protected final void`
`requesting(org.eclipse.net4j.util.io.ExtendedDataOutputStream out)`
`protected abstract void`
`requesting(org.eclipse.net4j.util.io.ExtendedDataOutputStream out, org.eclipse.net4j.util.om.monitor.OMMonitor monitor)`
`RESULT`
`send()`
`RESULT`
`send(long timeout)`
`RESULT`
`send(long timeout, org.eclipse.net4j.util.om.monitor.OMMonitor monitor)`
`RESULT`
`send(org.eclipse.net4j.util.om.monitor.OMMonitor monitor)`
`Future<RESULT>`
`sendAsync()`
`Future<RESULT>`
`sendAsync(org.eclipse.net4j.util.om.monitor.OMMonitor monitor)`

### Methods inherited from class org.eclipse.net4j.signal.RequestWithConfirmation

`getAsyncExecutorService, onRemoteException`

### Methods inherited from class org.eclipse.net4j.signal.SignalActor

`execute`

### Methods inherited from class org.eclipse.net4j.signal.Signal

`closeChannelAfterMe, closeInputStreamAfterMe, closeOutputStreamAfterMe, finishInputStream, finishOutputStream, flush, getAdditionalInfo, getBufferInputStream, getBufferOutputStream, getContainer, getCorrelationID, getCurrentInputStream, getCurrentOutputStream, getID, getName, getProtocol, handleRunException, run, toString, toString, wrapInputStream, wrapOutputStream`

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

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

## Field Details

### DEFAULT_CANCELATION_POLL_INTERVAL

public static final long DEFAULT_CANCELATION_POLL_INTERVAL

Since:
  2.0
See Also:
  - Constant Field Values

### DEFAULT_MONITOR_PROGRESS_SECONDS

public static final int DEFAULT_MONITOR_PROGRESS_SECONDS

Since:
  2.0
See Also:
  - Constant Field Values

### DEFAULT_MONITOR_TIMEOUT_SECONDS

public static final int DEFAULT_MONITOR_TIMEOUT_SECONDS

Since:
  2.0
See Also:
  - Constant Field Values

## Constructor Details

### RequestWithMonitoring

public RequestWithMonitoring(SignalProtocol<?> protocol, short id, String name)

Since:
  2.0

### RequestWithMonitoring

public RequestWithMonitoring(SignalProtocol<?> protocol, short signalID)

Since:
  2.0

### RequestWithMonitoring

public RequestWithMonitoring(SignalProtocol<?> protocol, Enum<?> literal)

Since:
  2.0

## Method Details

### sendAsync

public Future<RESULT> sendAsync()

Overrides:
  `sendAsync` in class `RequestWithConfirmation<RESULT>`

### sendAsync

public Future<RESULT> sendAsync(org.eclipse.net4j.util.om.monitor.OMMonitor monitor)

### send

public RESULT send() throws Exception, RemoteException

Overrides:
  `send` in class `RequestWithConfirmation<RESULT>`
Throws:
  `Exception`
  `RemoteException`

### send

public RESULT send(long timeout) throws Exception, RemoteException

Overrides:
  `send` in class `RequestWithConfirmation<RESULT>`
Throws:
  `Exception`
  `RemoteException`

### send

public RESULT send(org.eclipse.net4j.util.om.monitor.OMMonitor monitor) throws Exception, RemoteException

Throws:
  `Exception`
  `RemoteException`

### send

public RESULT send(long timeout, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) throws Exception, RemoteException

Throws:
  `Exception`
  `RemoteException`

### requesting

protected final void requesting(org.eclipse.net4j.util.io.ExtendedDataOutputStream out) throws Exception

Specified by:
  `requesting` in class `RequestWithConfirmation<RESULT>`
Throws:
  `Exception`

### confirming

protected final RESULT confirming(org.eclipse.net4j.util.io.ExtendedDataInputStream in) throws Exception
Description copied from class: `RequestWithConfirmation`
Important Note: The confirmation must not be empty, i.e. the stream must be used at least to read a `boolean`. Otherwise synchronization problems will result!

Specified by:
  `confirming` in class `RequestWithConfirmation<RESULT>`
Throws:
  `Exception`

### requesting

protected abstract void requesting(org.eclipse.net4j.util.io.ExtendedDataOutputStream out, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) throws Exception

Throws:
  `Exception`

### confirming

protected abstract RESULT confirming(org.eclipse.net4j.util.io.ExtendedDataInputStream in, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) throws Exception
Important Note: The confirmation must not be empty, i.e. the stream must be used at least to read a `boolean`. Otherwise synchronization problems will result!

Throws:
  `Exception`

### getCancelationExecutorService

protected ExecutorService getCancelationExecutorService()

Since:
  2.0

### getCancelationPollInterval

protected long getCancelationPollInterval()

Since:
  2.0

### getMonitorProgressSeconds

protected int getMonitorProgressSeconds()

Since:
  2.0

### getMonitorTimeoutSeconds

protected int getMonitorTimeoutSeconds()

Since:
  2.0

### getRequestingWorkPercent

protected int getRequestingWorkPercent()

Since:
  2.0

### getConfirmingWorkPercent

protected int getConfirmingWorkPercent()

Since:
  2.0