ECSTASY
All in the name
Loading...
Searching...
No Matches
Queryable.hpp File Reference

Contains the concepts for queryable objects. More...

#include <concepts>
#include <cstddef>
#include "ecstasy/thread/LockableView.hpp"
Include dependency graph for Queryable.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ecstasy::query::queryable_data< Q >
 Get the query data type of a queryable object. More...
 
struct  ecstasy::query::queryable_data< const Q >
 Get the query data type of a queryable object. More...
 
struct  ecstasy::query::queryable_data< W >
 Get the query data type of a queryable object. More...
 
struct  ecstasy::query::thread_safe_queryable< Q, ThreadSafe >
 Get the thread safe type of a queryable type. More...
 
struct  ecstasy::query::thread_safe_queryable< Q, true >
 Get the thread safe type of a queryable type. More...
 
struct  ecstasy::query::thread_safe_reference< T, ThreadSafe >
 Get the reference type of a maybe thread safe type. More...
 
struct  ecstasy::query::thread_safe_reference< T, true >
 Get the reference type of a maybe thread safe type. More...
 
struct  ecstasy::query::queryable_qualifiers< Q, AutoLock >
 Get the queryable type with the correct qualifiers. More...
 
struct  ecstasy::query::queryable_qualifiers< Q, true >
 Get the queryable type with the correct qualifiers. More...
 
struct  ecstasy::query::is_queryable< T >
 Checks if the given type match the Queryable concept. More...
 
struct  ecstasy::query::is_queryable< T >
 Checks if the given type match the Queryable concept. More...
 
struct  ecstasy::query::views_allocator_size< AutoLock, Qs >
 Get the size of the allocator required for the given queryable types. More...
 
struct  ecstasy::query::views_allocator_size< AutoLock, Q, Qs... >
 Get the size of the allocator required for the given queryable types. More...
 
struct  ecstasy::query::views_allocator_size< true, Q, Qs... >
 Get the thread safe type of a queryable type. More...
 

Namespaces

namespace  util
 Namespace regrouping helpers used by ecstasy but not specific to ecstasy.
 
namespace  ecstasy
 Namespace containing all symbols specific to ecstasy.
 
namespace  ecstasy::query
 Namespace regrouping the internal ecstasy query system.
 

Concepts

concept  ecstasy::query::QueryableObject
 Defines a type that can be queried.
 
concept  ecstasy::query::ConstQueryableObject
 Defines a type that can be queried in a const context.
 
concept  ecstasy::query::QueryableWrapper
 Defines a type that can be queried through a wrapper.
 
concept  ecstasy::query::Queryable
 Defines a type that can be queried.
 

Typedefs

template<typename Q >
using ecstasy::query::queryable_data_t = typename queryable_data< Q >::type
 Alias for the query data type of a queryable object.
 
template<typename Q , bool ThreadSafe = true>
using ecstasy::query::thread_safe_queryable_t = typename thread_safe_queryable< Q, ThreadSafe >::type
 Alias for the thread safe type of a queryable type.
 
template<typename T , bool ThreadSafe = true>
using ecstasy::query::thread_safe_reference_t = typename thread_safe_reference< T, ThreadSafe >::type
 Alias for the reference type of a maybe thread safe type.
 
template<typename Q , bool AutoLock = false>
using ecstasy::query::queryable_qualifiers_t = typename queryable_qualifiers< Q, AutoLock >::type
 Alias for the queryable type with the correct qualifiers.
 

Functions

template<Queryable Q>
constexpr const util::BitSetecstasy::query::getQueryableMask (const Q &queryable)
 Get the mask of the queryable object.
 
template<Queryable Q>
constexpr queryable_data_t< Q > ecstasy::query::getQueryableData (Q &queryable, size_t index)
 Get the query data at the given index.
 

Variables

template<typename T >
static constexpr bool ecstasy::query::is_queryable_v = is_queryable<T>::value
 Helper for is_queryable<T>::value.
 
template<bool AutoLock, Queryable... Qs>
size_t constexpr ecstasy::query::views_allocator_size_v = views_allocator_size<AutoLock, Qs...>::value
 Helper for views_allocator_size<AutoLock, Qs...>::value.
 

Detailed Description

Contains the concepts for queryable objects.

Queryable interface, base class of all queryable objects.

Author
Andréas Leroux (andre.nosp@m.as.l.nosp@m.eroux.nosp@m.@epi.nosp@m.tech..nosp@m.eu)
Version
1.0.0
Date
2022-10-25

Definition in file Queryable.hpp.