/usr/include/grantlee/template.h is in libgrantlee-dev 0.4.0-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | /*
This file is part of the Grantlee template system.
Copyright (c) 2009,2010 Stephen Kelly <steveire@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either version
2.1 of the Licence, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GRANTLEE_TEMPLATE_H
#define GRANTLEE_TEMPLATE_H
#include "exception.h"
#include "grantlee_core_export.h"
#include "node.h"
#include <QtCore/QSharedPointer>
#include <QtCore/QStringList>
namespace Grantlee
{
class Context;
class Engine;
class TemplateImpl;
class OutputStream;
#ifdef Q_QDOC
#define TemplateImpl Template
#else
typedef QSharedPointer<TemplateImpl> Template;
#endif
class TemplatePrivate;
/// @headerfile template.h grantlee/template.h
/**
@brief The Template class is a tree of nodes which may be rendered.
All Templates are created through the Grantlee::Engine class.
A template is created by parsing some text markup passed into the Engine, or by
reading it from a file.
Note that Template is actually a typedef for a QSharedPointer<TemplateImpl>, so all of its members should be accessed with operator->().
The result of parsing is a Template object which can be rendered multiple times with multiple different Contexts.
@code
Engine *engine = getEngine();
Template t = engine->newTemplate( "{{ name }} is aged {{ age }}", "simple template" );
if ( t->error() )
{
// Tokenizing or parsing error, or couldn't find custom tags or filters.
qDebug() << t->errorString();
return;
}
QTextStream textStream( stdout );
OutputStream stream( textStream );
for ( ... )
{
Context c;
// ... c.insert
t->render( stream, c );
if (t->error())
{
// Rendering error.
qDebug() << t->errorString();
}
}
@endcode
If there is an error in parsing or rendering, the error and errorString methods can be used to check the source of the error.
@author Stephen Kelly <steveire@gmail.com>
*/
class GRANTLEE_CORE_EXPORT TemplateImpl : public QObject
{
Q_OBJECT
public:
~TemplateImpl();
/**
Renders the template to a string given the Context @p c.
*/
virtual QString render( Context *c );
/**
Renders the Template to the OutputStream @p stream given the Context c.
*/
// ### BIC make this const and non-virtual.
virtual OutputStream* render( OutputStream *stream, Context *c );
#ifndef Q_QDOC
/**
@internal
*/
NodeList nodeList() const;
/**
@internal
*/
void setNodeList( const NodeList &list );
#endif
/**
Returns an error code for the error encountered.
*/
Error error();
/**
Returns more information to developers in the form of a string.
*/
QString errorString();
/**
Returns the Engine that created this Template.
*/
Engine const * engine() const;
#ifndef Q_QDOC
protected:
TemplateImpl( Engine const *engine, QObject *parent = 0 );
TemplateImpl( Engine const *engine, bool smartTrim, QObject *parent = 0 );
void setContent( const QString &templateString );
#endif
private:
//Don't allow setting the parent on a Template, which is memory managed as a QSharedPointer.
using QObject::setParent;
private:
Q_DECLARE_PRIVATE( Template )
TemplatePrivate * const d_ptr;
#ifndef Q_QDOC
friend class Engine;
friend class Parser;
#endif
};
}
Q_DECLARE_METATYPE( Grantlee::Template )
#endif
|