Grantlee  0.2.0
Public Member Functions
Grantlee::OutputStream Class Reference

The OutputStream class is used to render templates to a QTextStream. More...

#include <grantlee/outputstream.h>

List of all members.

Public Member Functions

 OutputStream ()
 OutputStream (QTextStream *stream)
virtual ~OutputStream ()
virtual QSharedPointer
< OutputStream
clone (QTextStream *stream) const
QString conditionalEscape (const Grantlee::SafeString &input) const
virtual QString escape (const QString &input) const
QString escape (const SafeString &input) const
OutputStreamoperator<< (const QString &input)
OutputStreamoperator<< (const SafeString &input)
OutputStreamoperator<< (QTextStream *stream)

Detailed Description

A OutputStream instance may be passed to the render method of a Template to render the template to a stream.

    QFile outputFile("./output");
    outputFile.open(QFile::WriteOnly);
    QTextStream tstream( &outputFile );

    OutputStream os(&tstream);
    t->render( &os, &context );

The OutputStream is used to escape the content streamed to it. By default, the escaping is html escaping, converting "&" to "&amp;" for example. If generating non-html output, the escape method may be overriden to perform a different escaping, or non at all.

If overriding the escape method, the clone method must also be overriden to return an OutputStream with the same escaping behaviour.

    class NoEscapeStream : public Grantlee::OutputStream
    {
    public:
      // ...

      QString escape( const QString &input ) const
      {
        return input;
      }

      QSharedPointer<OutputStream> clone( QTextStream *stream ) const
      {
        QSharedPointer<OutputStream> clonedStream = QSharedPointer<OutputStream>( new NoEscapeStream( stream ) );
        return clonedStream;
      }
    };
Author:
Stephen Kelly <steveire@gmail.com>

Definition at line 76 of file outputstream.h.


Constructor & Destructor Documentation

Creates a null OutputStream. Content streamed to this OutputStream is sent to /dev/null

Grantlee::OutputStream::OutputStream ( QTextStream *  stream) [explicit]

Creates an OutputStream which will stream content to stream with appropriate escaping.

Destructor


Member Function Documentation

virtual QSharedPointer<OutputStream> Grantlee::OutputStream::clone ( QTextStream *  stream) const [virtual]

Returns an cloned OutputStream with the same filtering behaviour.

Returns after escaping it, unless input is "safe", in which case, input is returned unmodified.

virtual QString Grantlee::OutputStream::escape ( const QString &  input) const [virtual]

Returns an escaped version of input. Does not write anything to the stream.

QString Grantlee::OutputStream::escape ( const SafeString input) const

Returns an escaped version of input. Does not write anything to the stream.

OutputStream& Grantlee::OutputStream::operator<< ( const QString &  input)

Writes input to the stream after escaping it.

OutputStream& Grantlee::OutputStream::operator<< ( const SafeString input)

Writes input to the stream after escaping it if necessary.

OutputStream& Grantlee::OutputStream::operator<< ( QTextStream *  stream)

Reads the content of stream and writes it unmodified to the result stream.