7.3 ResponseMixin Class
Description: ResponseMixin Class
Keywords: albatross

#
7.3 ResponseMixin Class

The `ResponseMixin` class provides functionality to manage the delivery of the application response to the browser. The class maintains headers in a case sensitive ordered dictionary that ensures the headers are sent to the browser in the same sequence as they are set (via `set_header()`).

The class automatically sends the headers to the browser when the first content is sent. Any attempt to modify or send headers after they have been sent will raise an `ApplicationError` exception.

All Albatross execution context classes except for `SimpleContext` inherit from this class.

`__init__`( | )

  When you inherit from the `ResponseMixin` class you must call this constructor to initialise the internal variables.

`get_header`( | name)

  Returns the value of the name header from the internal store. If the header does not exist then `None` is returned.

`set_header`( | name, value)

  Sets the value of the name header to value in the internal store and updates the header sequence.

  If headers have already been sent to the browser then an `ApplicationError` exception will be raised.

`del_header`( | name)

  Removes the name header from the internal store.

  If headers have already been sent to the browser then an `ApplicationError` exception will be raised.

`write_headers`( | )

  Writes all headers in ascending sequence to the browser. Each header is sent via the `Request` object `write_header()` method. At the end of headers the `Request` object `end_headers()` method is called.

  If headers have already been sent to the browser then an `ApplicationError` exception will be raised.

`send_content`( | data)

  Sends the content in data to the browser via the `Request` object `write_content()` method.

  If headers have not already been delivered to the browser then the `write_headers()` method is called before the data is written.

`send_redirect`( | loc)

  If a cookie header has been set it is sent to the browser then the `redirect()` method of the `request` member is called and the result is returned.