EnTT  3.6.0
Classes | Public Types | Public Member Functions | List of all members
entt::basic_organizer< Entity > Class Template Reference

Utility class for creating a static task graph. More...

#include <organizer.hpp>

Classes

struct  vertex
 Vertex type of a task graph defined as an adjacency list. More...
 

Public Types

using entity_type = Entity
 Underlying entity identifier.
 
using size_type = std::size_t
 Unsigned integer type.
 
using function_type = callback_type
 Raw task function type.
 

Public Member Functions

template<auto Candidate, typename... Req>
void emplace (const char *name=nullptr)
 Adds a free function to the task list. More...
 
template<auto Candidate, typename... Req, typename Type >
void emplace (Type &value_or_instance, const char *name=nullptr)
 Adds a free function with payload or a member function with an instance to the task list. More...
 
template<typename... Req>
void emplace (function_type *func, const void *payload=nullptr, const char *name=nullptr)
 Adds an user defined function with optional payload to the task list. More...
 
std::vector< vertexgraph ()
 Generates a task graph for the current content. More...
 
void clear ()
 Erases all elements from a container.
 

Detailed Description

template<typename Entity>
class entt::basic_organizer< Entity >

Utility class for creating a static task graph.

This class offers minimal support (but sufficient in many cases) for creating an execution graph from functions and their requirements on resources.
Note that the resulting tasks aren't executed in any case. This isn't the goal of the tool. Instead, they are returned to the user in the form of a graph that allows for safe execution.

Template Parameters
EntityA valid entity type (see entt_traits for more details).

Definition at line 125 of file organizer.hpp.

Member Function Documentation

◆ emplace() [1/3]

template<typename Entity >
template<auto Candidate, typename... Req>
void entt::basic_organizer< Entity >::emplace ( const char *  name = nullptr)
inline

Adds a free function to the task list.

Template Parameters
CandidateFunction to add to the task list.
ReqAdditional requirements and/or override resource access mode.
Parameters
nameOptional name to associate with the task.

Definition at line 376 of file organizer.hpp.

◆ emplace() [2/3]

template<typename Entity >
template<typename... Req>
void entt::basic_organizer< Entity >::emplace ( function_type func,
const void *  payload = nullptr,
const char *  name = nullptr 
)
inline

Adds an user defined function with optional payload to the task list.

Template Parameters
ReqAdditional requirements and/or override resource access mode.
Parameters
funcFunction to add to the task list.
payloadUser defined arbitrary data.
nameOptional name to associate with the task.

Definition at line 444 of file organizer.hpp.

◆ emplace() [3/3]

template<typename Entity >
template<auto Candidate, typename... Req, typename Type >
void entt::basic_organizer< Entity >::emplace ( Type &  value_or_instance,
const char *  name = nullptr 
)
inline

Adds a free function with payload or a member function with an instance to the task list.

Template Parameters
CandidateFunction or member to add to the task list.
ReqAdditional requirements and/or override resource access mode.
TypeType of class or type of payload.
Parameters
value_or_instanceA valid object that fits the purpose.
nameOptional name to associate with the task.

Definition at line 408 of file organizer.hpp.

◆ graph()

template<typename Entity >
std::vector<vertex> entt::basic_organizer< Entity >::graph ( )
inline

Generates a task graph for the current content.

Returns
The adjacency list of the task graph.

Definition at line 466 of file organizer.hpp.


The documentation for this class was generated from the following files: