Grantlee: Grantlee::CachingLoaderDecorator Class Reference

Grantlee 5.3.0

Public Member Functions | List of all members
Grantlee::CachingLoaderDecorator Class Reference

Implements a loader decorator which caches compiled Template objects. More...

`#include <grantlee/cachingloaderdecorator.h>`

Inheritance diagram for Grantlee::CachingLoaderDecorator:
[legend]

## Public Member Functions
| CachingLoaderDecorator (QSharedPointer< AbstractTemplateLoader > loader)
| ~CachingLoaderDecorator () override
bool | canLoadTemplate (const QString &name) const override
void | clear ()
QPair< QString, QString > | getMediaUri (const QString &fileName) const override
bool | isEmpty () const
Template | loadByName (const QString &name, const Grantlee::Engine *engine) const override
int | size () const
Public Member Functions inherited from Grantlee::AbstractTemplateLoader
virtual | ~AbstractTemplateLoader ()
virtual bool | canLoadTemplate (const QString &name) const =0
virtual QPair< QString, QString > | getMediaUri (const QString &fileName) const =0
virtual Template | loadByName (const QString &name, Engine const *engine) const =0

## Detailed Description

The CachingLoaderDecorator can be used with any implementation of Grantlee::AbstractTemplateLoader.

auto loader = QSharedPointer<Grantlee::FileSystemTemplateLoader>::create();
loader->setTemplateDirs({"/path/one", "/path/two"});
auto cache =
QSharedPointer<Grantlee::CachingLoaderDecorator>::create( loader );
m_engine->addTemplateLoader( cache );

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.

<ul>
{% for item in list %}
<li>{% include "itemtemplate.html" %}</li>
{% endfor %}
</ul>

If the loading of Templates is a bottleneck in an application, it may make sense to use the caching decorator.

Author
  Stephen Kelly steve.nosp@m.ire@.nosp@m.gmail.nosp@m..com

Definition at line 70 of file cachingloaderdecorator.h.

## Constructor & Destructor Documentation

## ◆ CachingLoaderDecorator()

Grantlee::CachingLoaderDecorator::CachingLoaderDecorator | ( | QSharedPointer< AbstractTemplateLoader > | loader | ) |

Constructor

## ◆ ~CachingLoaderDecorator()

Grantlee::CachingLoaderDecorator::~CachingLoaderDecorator | ( |  | ) |
| override

Destructor

## Member Function Documentation

## ◆ canLoadTemplate()

bool Grantlee::CachingLoaderDecorator::canLoadTemplate | ( | const QString & | name | ) | const
| overridevirtual

Return true if a Template identified by `name` exists and can be loaded.

Implements Grantlee::AbstractTemplateLoader.

## ◆ clear()

void Grantlee::CachingLoaderDecorator::clear | ( |  | ) |

Clears the Templates objects cached in the decorator.

## ◆ getMediaUri()

QPair< QString, QString > Grantlee::CachingLoaderDecorator::getMediaUri | ( | const QString & | fileName | ) | const
| overridevirtual

Return a complete URI for media identified by fileName.

Implements Grantlee::AbstractTemplateLoader.

## ◆ isEmpty()

bool Grantlee::CachingLoaderDecorator::isEmpty | ( |  | ) | const

Returns whether the cache is empty.

## ◆ loadByName()

Template Grantlee::CachingLoaderDecorator::loadByName | ( | const QString & | name,
|  | const Grantlee::Engine * | engine
| ) |  | const
| overridevirtual

Load a Template called `name`. Return an invalid Template if no content by that name exists.

Implements Grantlee::AbstractTemplateLoader.

## ◆ size()

int Grantlee::CachingLoaderDecorator::size | ( |  | ) | const

Returns the number of Template objects cached in the decorator.