Package muntjac :: Package terminal :: Module stream_variable :: Class IStreamVariable
[hide private]
[frames] | no frames]

Class IStreamVariable

source code

object --+
         |
        IStreamVariable

IStreamVariable is a special kind of variable whose value is streamed to an StringIO provided by the getOutputStream method. E.g. in web terminals IStreamVariable 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 terminal (to avoid stalls in other operations when eg. 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.


Authors:
Vaadin Ltd., Richard Lincoln

Version: 1.1.2

See Also: PaintTarget.addVariable

Instance Methods [hide private]
 
getOutputStream(self)
Invoked by the terminal when a new upload arrives, after streamingStarted method has been called.
source code
 
listenProgress(self)
Whether the onProgress method should be called during the upload.
source code
 
onProgress(self, event)
This method is called by the terminal if listenProgress returns true when the streaming starts.
source code
 
streamingStarted(self, event) source code
 
streamingFinished(self, event) source code
 
streamingFailed(self, event) source code
 
isInterrupted(self)
If this method returns true while the content is being streamed the Terminal to stop receiving current upload.
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __init__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

getOutputStream(self)

source code 

Invoked by the terminal when a new upload arrives, after streamingStarted method has been called. The terminal implementation will write the streamed variable to the returned output stream.

Returns:
Stream to which the uploaded file should be written.

listenProgress(self)

source code 

Whether the onProgress method should be called during the upload.

onProgress 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 uploadStarted event, but not after reading each buffer.

Returns:
true if this IStreamVariable wants to by notified during the upload of the progress of streaming.

See Also: onProgress

isInterrupted(self)

source code 

If this method returns true while the content is being streamed the Terminal to stop receiving current upload.

Note, the usage of this method is not synchronized over the Application instance by the terminal like other methods. The implementation should only return a boolean field and especially not modify UI or implement a synchronization by itself.

Returns:
true if the streaming should be interrupted as soon as possible.