/usr/include/grantlee/cachingloaderdecorator.h is in libgrantlee5-dev 5.1.0-2.
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 | /*
This file is part of the Grantlee template system.
Copyright (c) 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_CACHINGLOADERDECORATOR_H
#define GRANTLEE_CACHINGLOADERDECORATOR_H
#include "templateloader.h"
#include "grantlee_templates_export.h"
namespace Grantlee
{
class CachingLoaderDecoratorPrivate;
/// @headerfile cachingloaderdecorator.h grantlee/cachingloaderdecorator.h
/**
* @brief Implements a loader decorator which caches compiled Template objects.
*
* The CachingLoaderDecorator can be used with any implementation of
* Grantlee::AbstractTemplateLoader.
*
* @code
* Grantlee::FileSystemTemplateLoader::Ptr loader( new
* Grantlee::FileSystemTemplateLoader() );
* loader->setTemplateDirs( QStringList() << "/path/one" << "/path/two" );
*
* Grantlee::CachingLoaderDecorator::Ptr cache( new
* Grantlee::CachingLoaderDecorator( loader ) );
* m_engine->addTemplateLoader( cache );
* @endcode
*
* The effect is that templates do not need to be loaded from the filesystem and
* compiled into Template
* objects on each access, but may be returned from the cache instead.
*
* This can be significant if loading Templates in a loop, or loading the same
* Template very often in an application.
*
* @code
* <ul>
* {% for item in list %}
* <li>{% include "itemtemplate.html" %}
* {% endfor %}
* </ul>
* @endcode
*
* If the loading of Templates is a bottleneck in an application, it may make
* sense to use the caching decorator.
*
*/
class GRANTLEE_TEMPLATES_EXPORT CachingLoaderDecorator
: public AbstractTemplateLoader
{
public:
/**
Constructor
*/
CachingLoaderDecorator(QSharedPointer<AbstractTemplateLoader> loader);
/**
Destructor
*/
~CachingLoaderDecorator() override;
bool canLoadTemplate(const QString &name) const override;
QPair<QString, QString> getMediaUri(const QString &fileName) const override;
Template loadByName(const QString &name,
const Grantlee::Engine *engine) const override;
/**
* Clears the Templates objects cached in the decorator.
*/
void clear();
/**
* Returns the number of Template objects cached in the decorator.
*/
int size() const;
/**
* Returns whether the cache is empty.
*/
bool isEmpty() const;
private:
Q_DECLARE_PRIVATE(CachingLoaderDecorator)
CachingLoaderDecoratorPrivate *const d_ptr;
};
}
#endif
|