Package flumotion :: Package component :: Package misc :: Package httpserver :: Module httpfile :: Class File
[hide private]

Class File

source code

          twisted.web.resource.Resource --+
                                          |
twisted.python.filepath._PathHelper --+   |
                                      |   |
       twisted.python.filepath.FilePath --+
                                          |
                extern.log.log.Loggable --+
                                          |
                                         File
Known Subclasses:

Nested Classes [hide private]

Inherited from twisted.web.resource.Resource: entityType

Inherited from twisted.python.filepath.FilePath: clonePath

Instance Methods [hide private]
 
__init__(self, path, httpauth, mimeToResource=None, rateController=None)
Initialize.
source code
 
getChild(self, path, request)
Retrieve a 'child' resource from me.
source code
 
openForReading(self)
Open a file and return the handle.
source code
 
getFileSize(self)
Return file size.
source code
 
render(self, request)
Render a given resource.
source code
 
renderAuthenticated(self, _, request) source code
 
do_prepareBody(self, request, f, first, last)
I am called before the body of the response gets written, and after generic header setting has been done.
source code

Inherited from twisted.web.resource.Resource: __providedBy__, delEntity, getChildForRequest, getChildWithDefault, getDynamicEntity, getStaticEntity, listDynamicEntities, listDynamicNames, listEntities, listNames, listStaticEntities, listStaticNames, putChild, reallyPutEntity, render_HEAD

Inherited from twisted.python.filepath.FilePath: __cmp__, __getstate__, __repr__, basename, child, childSearchPreauth, copyTo, create, createDirectory, dirname, exists, getatime, getctime, getmtime, getsize, globChildren, isabs, isdir, isfile, islink, listdir, makedirs, moveTo, open, parent, preauthChild, remove, requireCreate, restat, setContent, siblingExtension, siblingExtensionSearch, splitext, temporarySibling, touch

Inherited from twisted.python.filepath._PathHelper: children, getContent, segmentsFrom, sibling, walk

Inherited from extern.log.log.Loggable: debug, doLog, error, info, log, logFunction, logObjectName, warning, warningFailure, writeMarker

Class Variables [hide private]
  contentTypes = {'.1': 'application/x-troff-man', '.2': 'applic...
  defaultType = 'application/octet-stream'
  childNotFound = weberror.NoResource("File not found.")

Inherited from twisted.web.resource.Resource: __implemented__, __provides__, isLeaf, server

Inherited from twisted.python.filepath.FilePath: path, statinfo

Inherited from twisted.python.filepath.FilePath (private): _chunkSize

Inherited from extern.log.log.Loggable: logCategory

Instance Variables [hide private]

Inherited from twisted.python.filepath.FilePath: alwaysCreate

Method Details [hide private]

__init__(self, path, httpauth, mimeToResource=None, rateController=None)
(Constructor)

source code 

Initialize.

Overrides: twisted.python.filepath.FilePath.__init__

getChild(self, path, request)

source code 

Retrieve a 'child' resource from me.

Implement this to create dynamic resource generation -- resources which are always available may be registered with self.putChild().

This will not be called if the class-level variable 'isLeaf' is set in your subclass; instead, the 'postpath' attribute of the request will be left as a list of the remaining path elements.

For example, the URL /foo/bar/baz will normally be:

 | site.resource.getChild('foo').getChild('bar').getChild('baz').

However, if the resource returned by 'bar' has isLeaf set to true, then the getChild call will never be made on it.

Parameters:
  • path - a string, describing the child
  • request - a twisted.web.server.Request specifying meta-information about the request that is being made for this child.
Overrides: twisted.web.resource.Resource.getChild
(inherited documentation)

render(self, request)

source code 

Render a given resource. See IResource's render method.

I delegate to methods of self with the form 'render_METHOD' where METHOD is the HTTP that was used to make the request. Examples: render_GET, render_HEAD, render_POST, and so on. Generally you should implement those methods instead of overriding this one.

render_METHOD methods are expected to return a string which will be the rendered page, unless the return value is twisted.web.server.NOT_DONE_YET, in which case it is this class's responsibility to write the results to request.write(data), then call request.finish().

Old code that overrides render() directly is likewise expected to return a string or NOT_DONE_YET.

Overrides: twisted.web.resource.Resource.render
(inherited documentation)

do_prepareBody(self, request, f, first, last)

source code 

I am called before the body of the response gets written, and after generic header setting has been done.

I set Content-Length.

Override me to send additional headers, or to prefix the body with data headers.


Class Variable Details [hide private]

contentTypes

Value:
{'.1': 'application/x-troff-man',
 '.2': 'application/x-troff-man',
 '.3': 'application/x-troff-man',
 '.4': 'application/x-troff-man',
 '.5': 'application/x-troff-man',
 '.6': 'application/x-troff-man',
 '.7': 'application/x-troff-man',
 '.8': 'application/x-troff-man',
...