TrinityCore
UF::DynamicUpdateFieldSetter< T > Struct Template Reference

#include <UpdateField.h>

Public Types

using value_type = T
 
using insert_result = std::conditional_t< std::is_base_of_v< HasChangesMaskTag, T >, MutableFieldReference< T, true >, T & >
 

Public Member Functions

 DynamicUpdateFieldSetter (std::vector< T > &values, std::vector< uint32 > &updateMask)
 

Private Member Functions

insert_result AddValue ()
 
insert_result InsertValue (std::size_t index)
 
void RemoveValue (std::size_t index)
 
void Clear ()
 
void MarkChanged (std::size_t index)
 

Static Private Member Functions

static void MarkNewValue (T &, std::false_type)
 
static void MarkNewValue (T &value, std::true_type)
 

Private Attributes

std::vector< T > & _values
 
std::vector< uint32 > & _updateMask
 

Friends

template<typename F >
DynamicUpdateFieldSetter< F >::insert_result AddDynamicUpdateFieldValue (DynamicUpdateFieldSetter< F > &setter)
 
template<typename F >
DynamicUpdateFieldSetter< F >::insert_result InsertDynamicUpdateFieldValue (DynamicUpdateFieldSetter< F > &setter, uint32 index)
 
template<typename F >
void RemoveDynamicUpdateFieldValue (DynamicUpdateFieldSetter< F > &setter, uint32 index)
 
template<typename F >
void ClearDynamicUpdateFieldValues (DynamicUpdateFieldSetter< F > &setter)
 

Detailed Description

template<typename T>
struct UF::DynamicUpdateFieldSetter< T >

Definition at line 143 of file UpdateField.h.

Member Typedef Documentation

◆ insert_result

template<typename T >
using UF::DynamicUpdateFieldSetter< T >::insert_result = std::conditional_t<std::is_base_of_v<HasChangesMaskTag, T>, MutableFieldReference<T, true>, T&>

Definition at line 146 of file UpdateField.h.

◆ value_type

template<typename T >
using UF::DynamicUpdateFieldSetter< T >::value_type = T

Definition at line 145 of file UpdateField.h.

Constructor & Destructor Documentation

◆ DynamicUpdateFieldSetter()

template<typename T >
UF::DynamicUpdateFieldSetter< T >::DynamicUpdateFieldSetter ( std::vector< T > &  values,
std::vector< uint32 > &  updateMask 
)
inline

Definition at line 160 of file UpdateField.h.

Member Function Documentation

◆ AddValue()

template<typename T >
insert_result UF::DynamicUpdateFieldSetter< T >::AddValue ( )
inlineprivate

Definition at line 165 of file UpdateField.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Clear()

template<typename T >
void UF::DynamicUpdateFieldSetter< T >::Clear ( )
inlineprivate

Definition at line 202 of file UpdateField.h.

+ Here is the caller graph for this function:

◆ InsertValue()

template<typename T >
insert_result UF::DynamicUpdateFieldSetter< T >::InsertValue ( std::size_t  index)
inlineprivate

Definition at line 174 of file UpdateField.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MarkChanged()

template<typename T >
void UF::DynamicUpdateFieldSetter< T >::MarkChanged ( std::size_t  index)
inlineprivate

Definition at line 208 of file UpdateField.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MarkNewValue() [1/2]

template<typename T >
static void UF::DynamicUpdateFieldSetter< T >::MarkNewValue ( T &  ,
std::false_type   
)
inlinestaticprivate

Definition at line 217 of file UpdateField.h.

+ Here is the caller graph for this function:

◆ MarkNewValue() [2/2]

template<typename T >
static void UF::DynamicUpdateFieldSetter< T >::MarkNewValue ( T &  value,
std::true_type   
)
inlinestaticprivate

Definition at line 221 of file UpdateField.h.

◆ RemoveValue()

template<typename T >
void UF::DynamicUpdateFieldSetter< T >::RemoveValue ( std::size_t  index)
inlineprivate

Definition at line 186 of file UpdateField.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Friends And Related Function Documentation

◆ AddDynamicUpdateFieldValue

template<typename T >
template<typename F >
DynamicUpdateFieldSetter< F >::insert_result AddDynamicUpdateFieldValue ( DynamicUpdateFieldSetter< F > &  setter)
friend

◆ ClearDynamicUpdateFieldValues

template<typename T >
template<typename F >
void ClearDynamicUpdateFieldValues ( DynamicUpdateFieldSetter< F > &  setter)
friend

◆ InsertDynamicUpdateFieldValue

template<typename T >
template<typename F >
DynamicUpdateFieldSetter< F >::insert_result InsertDynamicUpdateFieldValue ( DynamicUpdateFieldSetter< F > &  setter,
uint32  index 
)
friend

◆ RemoveDynamicUpdateFieldValue

template<typename T >
template<typename F >
void RemoveDynamicUpdateFieldValue ( DynamicUpdateFieldSetter< F > &  setter,
uint32  index 
)
friend

Member Data Documentation

◆ _updateMask

template<typename T >
std::vector<uint32>& UF::DynamicUpdateFieldSetter< T >::_updateMask
private

Definition at line 227 of file UpdateField.h.

◆ _values

template<typename T >
std::vector<T>& UF::DynamicUpdateFieldSetter< T >::_values
private

Definition at line 226 of file UpdateField.h.


The documentation for this struct was generated from the following file: