Page Speed Optimization Libraries  1.5.27.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions
net_instaweb::HtmlWriterFilter Class Reference

Filter that serializes HTML to a Writer stream. More...

#include "html_writer_filter.h"

Inheritance diagram for net_instaweb::HtmlWriterFilter:
net_instaweb::HtmlFilter net_instaweb::BlinkFilter net_instaweb::CacheHtmlFilter net_instaweb::ComputeVisibleTextFilter net_instaweb::FlushEarlyContentWriterFilter net_instaweb::SuppressPreheadFilter net_instaweb::SplitHtmlFilter

List of all members.

Public Member Functions

 HtmlWriterFilter (HtmlParse *html_parse)
void set_writer (Writer *writer)
virtual void StartDocument ()
virtual void EndDocument ()
 Note: EndDocument will be called imediately before the last Flush call.
virtual void StartElement (HtmlElement *element)
virtual void EndElement (HtmlElement *element)
virtual void Cdata (HtmlCdataNode *cdata)
 Called for CDATA blocks (e.g. <![CDATA[foobar]]>)
virtual void Comment (HtmlCommentNode *comment)
 Called for HTML comments that aren't IE directives (e.g. ).
virtual void IEDirective (HtmlIEDirectiveNode *directive)
virtual void Characters (HtmlCharactersNode *characters)
 Called for raw characters between tags.
virtual void Directive (HtmlDirectiveNode *directive)
 Called for HTML directives (e.g. <!doctype foobar>).
virtual void Flush ()
virtual void DetermineEnabled ()
void set_max_column (int max_column)
void set_case_fold (bool case_fold)
virtual const char * Name () const
 The name of this filter -- used for logging and debugging.

Protected Member Functions

virtual void Clear ()
 Clear various variables for rewriting a new html file.
Writerwriter ()
void TerminateLazyCloseElement ()
 Terminates the current lazy close element if it is not already terminated.

Detailed Description

Filter that serializes HTML to a Writer stream.


Member Function Documentation

Invoked by rewrite driver where all filters should determine whether they are enabled for this request.

Implements net_instaweb::HtmlFilter.

virtual void net_instaweb::HtmlWriterFilter::Flush ( ) [virtual]

Notifies the Filter that a flush is occurring. A filter that's generating streamed output should flush at this time. A filter that's mutating elements can mutate any element seen since the most recent flush; once an element is flushed it is already on the wire to its destination and it's too late to mutate. Flush is initiated by an application calling HttpParse::Flush().

Flush() is called after all other handlers during a HttpParse::Flush(), except RenderDone(), which (if in use) happens after Flush().

Implements net_instaweb::HtmlFilter.

Reimplemented in net_instaweb::BlinkFilter, and net_instaweb::CacheHtmlFilter.

virtual void net_instaweb::HtmlWriterFilter::IEDirective ( HtmlIEDirectiveNode directive) [virtual]

Called for an IE directive; typically used for CSS styling. See http://msdn.microsoft.com/en-us/library/ms537512(VS.85).aspx

Todo:
TODO(mdsteele): Should we try to maintain the nested structure of the conditionals, in the same way that we maintain nesting of elements?

Implements net_instaweb::HtmlFilter.

Reimplemented in net_instaweb::ComputeVisibleTextFilter.

Starts a new document. Filters should clear their state in this function, as the same Filter instance may be used for multiple HTML documents.

Implements net_instaweb::HtmlFilter.

Reimplemented in net_instaweb::SplitHtmlFilter, net_instaweb::FlushEarlyContentWriterFilter, net_instaweb::BlinkFilter, net_instaweb::ComputeVisibleTextFilter, net_instaweb::CacheHtmlFilter, and net_instaweb::SuppressPreheadFilter.

virtual void net_instaweb::HtmlWriterFilter::StartElement ( HtmlElement element) [virtual]

When an HTML element is encountered during parsing, each filter's StartElement method is called. The HtmlElement lives for the entire duration of the document.

Todo:
TODO(jmarantz): consider passing handles rather than pointers and reference-counting them instead to save memory on long documents.

Implements net_instaweb::HtmlFilter.

Reimplemented in net_instaweb::SplitHtmlFilter, net_instaweb::FlushEarlyContentWriterFilter, net_instaweb::BlinkFilter, net_instaweb::ComputeVisibleTextFilter, net_instaweb::CacheHtmlFilter, and net_instaweb::SuppressPreheadFilter.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines