$darkmode
registrar.hpp File Reference
#include <list>
#include <memory>
#include <string>
#include <utility>
#include <sol/table.hpp>
#include <cloe/cloe_fwd.hpp>
#include <cloe/handler.hpp>
#include <cloe/trigger.hpp>
#include <fable/json.hpp>
Include dependency graph for registrar.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cloe::DirectCallback< E, Ctx >
 
class  cloe::Registrar
 

Typedefs

template<typename E , typename... Ctx>
using cloe::DirectCallbackPtr = std::shared_ptr< DirectCallback< E, Ctx... > >
 

Enumerations

enum class  cloe::HandlerType { STATIC , DYNAMIC , BUFFERED }
 

Enumeration Type Documentation

◆ HandlerType

enum cloe::HandlerType
strong

A Handler accesses data from an asynchronous content.

In order to provide safety and performance, the form of content that the handler accesses must be specified.

Enumerator
STATIC 

Static content is assumed to always return the exact same data over the course of a simulation.

DYNAMIC 

Dynamic content means data may be written to as a result of a handler or that there may be data-races.

This is also appropriate for handlers that need to make use of certain GET parameters or have a large overhead when creating data.

BUFFERED 

Buffered data is like dynamic content, except that a buffer is used to fetch the data; the buffer is updated every cycle.

The main restriction is that buffered data types cannot read from the request (since their output is buffered, and fetched via a dummy request). Additionally, buffered handlers cannot write any data.