Helios Engine 0.1.0
A modular ECS based data-oriented C++23 game engine
 
Loading...
Searching...
No Matches
helios::ecs::details::TryInsertResourceCmd< T > Class Template Referencefinal

Command to try insert a resource (only if missing). More...

#include <commands.hpp>

Inheritance diagram for helios::ecs::details::TryInsertResourceCmd< T >:
helios::ecs::Command

Public Member Functions

constexpr TryInsertResourceCmd (const T &resource) noexcept(std::is_nothrow_copy_constructible_v< T >)
 Constructs try insert resource command with copy.
 
constexpr TryInsertResourceCmd (T &&resource) noexcept(std::is_nothrow_move_constructible_v< T >)
 Constructs try insert resource command with move.
 
constexpr TryInsertResourceCmd (const TryInsertResourceCmd &) noexcept=default
 
constexpr TryInsertResourceCmd (TryInsertResourceCmd &&) noexcept=default
 
constexpr ~TryInsertResourceCmd () noexcept override=default
 
constexpr TryInsertResourceCmdoperator= (const TryInsertResourceCmd &) noexcept=default
 
constexpr TryInsertResourceCmdoperator= (TryInsertResourceCmd &&) noexcept=default
 
void Execute (World &world) override
 Executes resource insertion if it doesn't exist.
 
- Public Member Functions inherited from helios::ecs::Command
virtual constexpr ~Command () noexcept=default
 

Detailed Description

template<ResourceTrait T>
class helios::ecs::details::TryInsertResourceCmd< T >

Command to try insert a resource (only if missing).

Template Parameters
TResource type

Definition at line 668 of file commands.hpp.

Constructor & Destructor Documentation

◆ TryInsertResourceCmd() [1/4]

template<ResourceTrait T>
constexpr helios::ecs::details::TryInsertResourceCmd< T >::TryInsertResourceCmd ( const T &  resource)
inlineexplicitconstexprnoexcept

Constructs try insert resource command with copy.

Parameters
resourceResource to copy

Definition at line 674 of file commands.hpp.

675 : resource_(resource) {}
BasicQuery< World, Allocator, Components... > Query
Type alias for query with mutable world access.
Definition query.hpp:2481

◆ TryInsertResourceCmd() [2/4]

template<ResourceTrait T>
constexpr helios::ecs::details::TryInsertResourceCmd< T >::TryInsertResourceCmd ( T &&  resource)
inlineexplicitconstexprnoexcept

Constructs try insert resource command with move.

Parameters
resourceResource to move

Definition at line 681 of file commands.hpp.

682 : resource_(std::move(resource)) {}

◆ TryInsertResourceCmd() [3/4]

template<ResourceTrait T>
constexpr helios::ecs::details::TryInsertResourceCmd< T >::TryInsertResourceCmd ( const TryInsertResourceCmd< T > &  )
constexprdefaultnoexcept

◆ TryInsertResourceCmd() [4/4]

template<ResourceTrait T>
constexpr helios::ecs::details::TryInsertResourceCmd< T >::TryInsertResourceCmd ( TryInsertResourceCmd< T > &&  )
constexprdefaultnoexcept

◆ ~TryInsertResourceCmd()

template<ResourceTrait T>
constexpr helios::ecs::details::TryInsertResourceCmd< T >::~TryInsertResourceCmd ( )
constexproverridedefaultnoexcept

Member Function Documentation

◆ Execute()

template<ResourceTrait T>
void helios::ecs::details::TryInsertResourceCmd< T >::Execute ( World world)
inlineoverridevirtual

Executes resource insertion if it doesn't exist.

Parameters
worldWorld to insert resource into

Implements helios::ecs::Command.

Definition at line 695 of file commands.hpp.

695{ world.TryInsertResource(std::move(resource_)); }

◆ operator=() [1/2]

template<ResourceTrait T>
constexpr TryInsertResourceCmd & helios::ecs::details::TryInsertResourceCmd< T >::operator= ( const TryInsertResourceCmd< T > &  )
constexprdefaultnoexcept

◆ operator=() [2/2]

template<ResourceTrait T>
constexpr TryInsertResourceCmd & helios::ecs::details::TryInsertResourceCmd< T >::operator= ( TryInsertResourceCmd< T > &&  )
constexprdefaultnoexcept