Package gavo :: Package svcs :: Module streaming :: Class DataStreamer
[frames] | no frames]

Class DataStreamer

source code

        object --+        
                 |        
threading._Verbose --+    
                     |    
      threading.Thread --+
                         |
                        DataStreamer

is a twisted-enabled Thread to stream out large files produced on the fly.

It is basically a push producer. To use it, construct it with a data source and a twisted request (or any IFinishableConsumer) If in a nevow resource, you should then return request.deferred.

The data source simply is a function writeStreamTo taking one argument; this will be the DataStreamer. You can call its write method to deliver data. There's no need to close anything, just let your function return.

writeStream will be run in a thread to avoid blocking the reactor.

Instance Methods
 
__init__(self, writeStreamTo, consumer)
This constructor should always be called with keyword arguments.
source code
 
resumeProducing(self, *args, **kwargs) source code
 
pauseProducing(self, *args, **kwargs) source code
 
stopProducing(self, *args, **kwargs) source code
 
write(self, data)
schedules data to be written to the consumer.
source code
 
cleanup(self, result=None) source code
 
run(self)
Method representing the thread's activity.
source code
 
__provides__(...)
Special descriptor for class __provides__

Inherited from threading.Thread: __repr__, getName, isAlive, isDaemon, is_alive, join, setDaemon, setName, start

Inherited from threading._Verbose: __providedBy__

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

Class Variables
  synchronized = ['resumeProducing', 'pauseProducing', 'stopProd...
  __implemented__ = <implementedBy gavo.svcs.streaming.DataStrea...
Properties

Inherited from threading.Thread: daemon, ident, name

Inherited from object: __class__

Method Details

__init__(self, writeStreamTo, consumer)
(Constructor)

source code 

This constructor should always be called with keyword arguments. Arguments are:

*group* should be None; reserved for future extension when a ThreadGroup class is implemented.

*target* is the callable object to be invoked by the run() method. Defaults to None, meaning nothing is called.

*name* is the thread name. By default, a unique name is constructed of the form "Thread-N" where N is a small decimal number.

*args* is the argument tuple for the target invocation. Defaults to ().

*kwargs* is a dictionary of keyword arguments for the target invocation. Defaults to {}.

If a subclass overrides the constructor, it must make sure to invoke the base class constructor (Thread.__init__()) before doing anything else to the thread.

Overrides: object.__init__
(inherited documentation)

run(self)

source code 

Method representing the thread's activity.

You may override this method in a subclass. The standard run() method invokes the callable object passed to the object's constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.

Overrides: threading.Thread.run
(inherited documentation)

__provides__(...)

 

Special descriptor for class __provides__

The descriptor caches the implementedBy info, so that we can get declarations for objects without instance-specific interfaces a bit quicker.

Overrides: threading._Verbose.__provides__

Class Variable Details

synchronized

Value:
['resumeProducing', 'pauseProducing', 'stopProducing']

__implemented__

Value:
<implementedBy gavo.svcs.streaming.DataStreamer>