public interface StreamVariable extends Serializable
OutputStream
provided by the getOutputStream()
method. E.g.
in web terminals StreamVariable
can be used to send large files from
browsers to the server without consuming large amounts of memory.
Note, writing to the OutputStream
is not synchronized by the handler
(to avoid stalls in other operations when e.g. streaming to a slow network
service or file system). If UI is changed as a side effect of writing to the
output stream, developer must handle synchronization manually.
Modifier and Type | Interface and Description |
---|---|
static interface |
StreamVariable.StreamingEndEvent
Event passed to
streamingFinished(StreamingEndEvent) method the
contents have been streamed to StreamVariable successfully. |
static interface |
StreamVariable.StreamingErrorEvent
Event passed to
streamingFailed(StreamingErrorEvent) method when
the streaming ended before the end of the input. |
static interface |
StreamVariable.StreamingEvent
Streaming event interface.
|
static interface |
StreamVariable.StreamingProgressEvent
Event passed to
onProgress(StreamingProgressEvent) method during
the streaming progresses. |
static interface |
StreamVariable.StreamingStartEvent
Event passed to
streamingStarted(StreamingStartEvent) method
before the streaming of the content to StreamVariable starts. |
Modifier and Type | Method and Description |
---|---|
OutputStream |
getOutputStream()
Invoked when a new upload arrives, after
streamingStarted(StreamingStartEvent) method has been called. |
boolean |
isInterrupted()
If this method returns true while the content is being streamed the
handler is told to stop receiving the current upload.
|
boolean |
listenProgress()
Whether the
onProgress(StreamingProgressEvent) method should be
called during the upload. |
void |
onProgress(StreamVariable.StreamingProgressEvent event)
This method is called if
listenProgress()
returns true when the streaming starts. |
void |
streamingFailed(StreamVariable.StreamingErrorEvent event)
This method is called when the streaming has failed.
|
void |
streamingFinished(StreamVariable.StreamingEndEvent event)
This method is called when the streaming has finished.
|
void |
streamingStarted(StreamVariable.StreamingStartEvent event)
This method is called when the streaming starts.
|
OutputStream getOutputStream()
streamingStarted(StreamingStartEvent)
method has been called.
The implementation will write the streamed variable to the
returned output stream.boolean listenProgress()
onProgress(StreamingProgressEvent)
method should be
called during the upload.
onProgress(StreamingProgressEvent)
is called in a synchronized
block when the content is being received. This is potentially bit slow,
so we are calling that method only if requested. The value is requested
after the streamingStarted(StreamingStartEvent)
event, but not
after reading each buffer.
StreamVariable
wants to by notified during
the upload of the progress of streaming.onProgress(StreamingProgressEvent)
void onProgress(StreamVariable.StreamingProgressEvent event)
listenProgress()
returns true when the streaming starts.event
- streaming progress eventvoid streamingStarted(StreamVariable.StreamingStartEvent event)
event
- streaming start eventvoid streamingFinished(StreamVariable.StreamingEndEvent event)
event
- streaming end eventvoid streamingFailed(StreamVariable.StreamingErrorEvent event)
event
- streaming error eventboolean isInterrupted()
Note, the usage of this method is not synchronized over the Application instance like other methods. The implementation should only return a boolean field and especially not modify UI or implement a synchronization by itself.
Copyright © 2019. All rights reserved.