Nui
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
Nui::ObservedContainer< ContainerT > Class Template Reference

#include <observed_value.hpp>

Inheritance diagram for Nui::ObservedContainer< ContainerT >:
Inheritance graph
[legend]
Collaboration diagram for Nui::ObservedContainer< ContainerT >:
Collaboration graph
[legend]

Public Types

using value_type = typename ContainerT::value_type
 
using allocator_type = typename ContainerT::allocator_type
 
using size_type = typename ContainerT::size_type
 
using difference_type = typename ContainerT::difference_type
 
using reference = ContainerWrapUtility::ReferenceWrapper< typename ContainerT::value_type, ContainerT >
 
using const_reference = typename ContainerT::const_reference
 
using pointer = ContainerWrapUtility::PointerWrapper< typename ContainerT::value_type, ContainerT >
 
using const_pointer = typename ContainerT::const_pointer
 
using iterator = ContainerWrapUtility::IteratorWrapper< typename ContainerT::iterator, ContainerT >
 
using const_iterator = typename ContainerT::const_iterator
 
using reverse_iterator = ContainerWrapUtility::IteratorWrapper< typename ContainerT::reverse_iterator, ContainerT >
 
using const_reverse_iterator = typename ContainerT::const_reverse_iterator
 
- Public Types inherited from Nui::ModifiableObserved< ContainerT >
using value_type = ContainerT
 

Public Member Functions

 ObservedContainer (CustomEventContextFlag_t, EventContext *ctx)
 
 ObservedContainer ()
 
template<typename T = ContainerT>
 ObservedContainer (CustomEventContextFlag_t, EventContext *ctx, T &&t)
 
template<typename T = ContainerT>
 ObservedContainer (T &&t)
 
 ObservedContainer (RangeEventContext &&rangeContext)
 
 ObservedContainer (CustomEventContextFlag_t, EventContext *ctx, RangeEventContext &&rangeContext)
 
template<typename T = ContainerT>
 ObservedContainer (T &&t, RangeEventContext &&rangeContext)
 
template<typename T = ContainerT>
 ObservedContainer (CustomEventContextFlag_t, EventContext *ctx, T &&t, RangeEventContext &&rangeContext)
 
 ObservedContainer (const ObservedContainer &)=delete
 
 ObservedContainer (ObservedContainer &&)=default
 
ObservedContaineroperator= (const ObservedContainer &)=delete
 
ObservedContaineroperator= (ObservedContainer &&)=default
 
 ~ObservedContainer ()
 
constexpr auto map (auto &&function) const
 
constexpr auto map (auto &&function)
 
template<typename T = ContainerT>
ObservedContaineroperator= (T &&t)
 
void assign (size_type count, const value_type &value)
 
template<typename Iterator >
void assign (Iterator first, Iterator last)
 
void assign (std::initializer_list< value_type > ilist)
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
pointer data () noexcept
 
const_pointer data () const noexcept
 
reference at (size_type pos)
 
const_reference at (size_type pos) const
 
reference operator[] (size_type pos)
 
const_reference operator[] (size_type pos) const
 
iterator begin () noexcept
 
const_iterator begin () const noexcept
 
iterator end () noexcept
 
const_iterator end () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 
reverse_iterator rbegin () noexcept
 
const_reverse_iterator rbegin () const noexcept
 
reverse_iterator rend () noexcept
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator crend () const noexcept
 
bool empty () const noexcept
 
std::size_t size () const noexcept
 
template<typename U = ContainerT>
Detail::PickFirst_t< std::size_t, decltype(std::declval< U >).max_size())> max_size () const noexcept
 
template<typename U = ContainerT>
Detail::PickFirst_t< void, decltype(std::declval< U >).reserve(std::declval< std::size_t >)))> reserve (size_type capacity)
 
template<typename U = ContainerT>
Detail::PickFirst_t< std::size_t, decltype(std::declval< U >).capacity())> capacity () const noexcept
 
template<typename U = ContainerT>
Detail::PickFirst_t< void, decltype(std::declval< U >).shrink_to_fit())> shrink_to_fit ()
 
void clear ()
 
template<typename U = ContainerT>
Detail::PickFirst_t< std::pair< typename ContainerT::iterator, bool >, decltype(std::declval< U >).insert(std::declval< const value_type & >)))> insert (const value_type &value)
 
template<typename U = ContainerT>
Detail::PickFirst_t< std::pair< typename ContainerT::iterator, bool >, decltype(std::declval< U >).insert(std::declval< value_type && >)))> insert (value_type &&value)
 
iterator insert (iterator pos, const value_type &value)
 
iterator insert (const_iterator pos, const value_type &value)
 
iterator insert (iterator pos, value_type &&value)
 
iterator insert (const_iterator pos, value_type &&value)
 
iterator insert (iterator pos, size_type count, const value_type &value)
 
iterator insert (const_iterator pos, size_type count, const value_type &value)
 
template<typename Iterator >
iterator insert (iterator pos, Iterator first, Iterator last)
 
template<typename Iterator >
iterator insert (const_iterator pos, Iterator first, Iterator last)
 
iterator insert (iterator pos, std::initializer_list< value_type > ilist)
 
iterator insert (const_iterator pos, std::initializer_list< value_type > ilist)
 
template<typename... Args>
iterator emplace (const_iterator pos, Args &&... args)
 
iterator erase (iterator pos)
 
iterator erase (const_iterator pos)
 
iterator erase (iterator first, iterator last)
 
iterator erase (const_iterator first, const_iterator last)
 
template<typename U = ContainerT>
Detail::PickFirst_t< void, decltype(std::declval< U >).push_back(std::declval< const value_type & >)))> push_back (const value_type &value)
 
template<typename U = ContainerT>
Detail::PickFirst_t< void, decltype(std::declval< U >).push_back(std::declval< value_type >)))> push_back (value_type &&value)
 
template<typename U = ContainerT>
Detail::PickFirst_t< void, decltype(std::declval< U >).push_front(std::declval< const value_type & >)))> push_front (const value_type &value)
 
template<typename U = ContainerT>
Detail::PickFirst_t< void, decltype(std::declval< U >).push_front(std::declval< value_type >)))> push_front (value_type &&value)
 
template<typename... Args>
void emplace_back (Args &&... args)
 
template<typename U = ContainerT, typename... Args>
Detail::PickFirst_t< void, decltype(std::declval< U >).emplace_front())> emplace_front (Args &&... args)
 
void pop_back ()
 
template<typename U = ContainerT>
Detail::PickFirst_t< void, decltype(std::declval< U >).pop_front())> pop_front ()
 
template<typename U = ContainerT>
Detail::PickFirst_t< void, decltype(std::declval< U >).resize(std::declval< std::size_t >)))> resize (size_type count)
 
template<typename U = ContainerT>
Detail::PickFirst_t< void, decltype(std::declval< U >).resize(std::declval< std::size_t >), std::declval< value_type const & >)))> resize (size_type count, value_type const &fillValue)
 
void swap (ContainerT &other)
 
ContainerT & value ()
 
ContainerT const & value () const
 
RangeEventContextrangeContext ()
 
RangeEventContext const & rangeContext () const
 
- Public Member Functions inherited from Nui::ModifiableObserved< ContainerT >
 ModifiableObserved ()
 
 ModifiableObserved (const ModifiableObserved &)=delete
 
 ModifiableObserved (ModifiableObserved &&other)
 
 ModifiableObserved (T &&t)
 
 ModifiableObserved (CustomEventContextFlag_t, EventContext *ctx)
 
 ModifiableObserved (CustomEventContextFlag_t, EventContext *ctx, T &&t)
 
ModifiableObservedoperator= (const ModifiableObserved &)=delete
 
ModifiableObservedoperator= (ModifiableObserved &&other)
 
ModifiableObservedoperator= (ContainerT const &contained)
 
ModifiableObservedoperator= (ContainerT &&contained)
 
ModifiableObservedoperator= (T &&t)
 Assign a completely new value. More...
 
requires std::equality_comparable_with< ContainerT, T > &&Fundamental< T > &&Fundamental< ContainerT > ModifiableObservedoperator= (T &&t)
 
 ~ModifiableObserved ()=default
 
requires PlusAssignable< T, U > ModifiableObserved< T > & operator+= (U const &rhs)
 
requires MinusAssignable< T, U > ModifiableObserved< T > & operator-= (U const &rhs)
 
requires std::equality_comparable_with< ContainerT, T > ModifiableObservedassignChecked (T &&other)
 
ModificationProxy modify ()
 Can be used to make mutations to the underlying class that get commited when the returned proxy is destroyed. More...
 
ModificationProxy modifyNow ()
 
 operator bool () const requires std
 
ContainerT const & value () const
 
ContainerT & operator* ()
 
ContainerT const & operator* () const
 
ContainerT * operator-> ()
 
ContainerT const * operator-> () const
 
void assignWithoutUpdate (ContainerT &&t)
 Sets the value without making an update. More...
 
- Public Member Functions inherited from Nui::ObservedBase
 ObservedBase (CustomEventContextFlag_t, EventContext *ctx)
 
virtual ~ObservedBase ()=default
 
 ObservedBase (ObservedBase const &)=delete
 
 ObservedBase (ObservedBase &&other)
 
ObservedBaseoperator= (ObservedBase const &)=delete
 
ObservedBaseoperator= (ObservedBase &&other)
 
void attachEvent (EventContext::EventIdType eventId) const
 
void attachOneshotEvent (EventContext::EventIdType eventId) const
 
void detachEvent (EventContext::EventIdType eventId) const
 
std::size_t attachedEventCount () const
 
std::size_t attachedOneshotEventCount () const
 
std::size_t totalAttachedEventCount () const
 
void detachAllEvents ()
 You should never need to do this. More...
 
void updateNow (bool force=false) const
 

Protected Member Functions

void update (bool force=false) const override
 
void insertRangeChecked (std::size_t low, std::size_t high, RangeOperationType type)
 
auto registerAfterEffect ()
 
void eraseNotify (std::size_t index, std::size_t high)
 

Protected Attributes

MoveDetector moveDetector_
 
std::shared_ptr< RangeEventContextrangeContext_
 
EventContext::EventIdType afterEffectId_
 
- Protected Attributes inherited from Nui::ModifiableObserved< ContainerT >
ContainerT contained_
 
- Protected Attributes inherited from Nui::ObservedBase
EventContexteventContext_
 
std::vector< EventContext::EventIdTypeattachedEvents_
 
std::vector< EventContext::EventIdTypeattachedOneshotEvents_
 

Friends

class ContainerWrapUtility::ReferenceWrapper< typename ContainerT::value_type, ContainerT >
 
class ContainerWrapUtility::PointerWrapper< typename ContainerT::value_type, ContainerT >
 

Member Typedef Documentation

◆ allocator_type

template<typename ContainerT >
using Nui::ObservedContainer< ContainerT >::allocator_type = typename ContainerT::allocator_type

◆ const_iterator

template<typename ContainerT >
using Nui::ObservedContainer< ContainerT >::const_iterator = typename ContainerT::const_iterator

◆ const_pointer

template<typename ContainerT >
using Nui::ObservedContainer< ContainerT >::const_pointer = typename ContainerT::const_pointer

◆ const_reference

template<typename ContainerT >
using Nui::ObservedContainer< ContainerT >::const_reference = typename ContainerT::const_reference

◆ const_reverse_iterator

template<typename ContainerT >
using Nui::ObservedContainer< ContainerT >::const_reverse_iterator = typename ContainerT::const_reverse_iterator

◆ difference_type

template<typename ContainerT >
using Nui::ObservedContainer< ContainerT >::difference_type = typename ContainerT::difference_type

◆ iterator

template<typename ContainerT >
using Nui::ObservedContainer< ContainerT >::iterator = ContainerWrapUtility::IteratorWrapper<typename ContainerT::iterator, ContainerT>

◆ pointer

template<typename ContainerT >
using Nui::ObservedContainer< ContainerT >::pointer = ContainerWrapUtility::PointerWrapper<typename ContainerT::value_type, ContainerT>

◆ reference

template<typename ContainerT >
using Nui::ObservedContainer< ContainerT >::reference = ContainerWrapUtility::ReferenceWrapper<typename ContainerT::value_type, ContainerT>

◆ reverse_iterator

template<typename ContainerT >
using Nui::ObservedContainer< ContainerT >::reverse_iterator = ContainerWrapUtility::IteratorWrapper<typename ContainerT::reverse_iterator, ContainerT>

◆ size_type

template<typename ContainerT >
using Nui::ObservedContainer< ContainerT >::size_type = typename ContainerT::size_type

◆ value_type

template<typename ContainerT >
using Nui::ObservedContainer< ContainerT >::value_type = typename ContainerT::value_type

Constructor & Destructor Documentation

◆ ObservedContainer() [1/10]

template<typename ContainerT >
Nui::ObservedContainer< ContainerT >::ObservedContainer ( CustomEventContextFlag_t  ,
EventContext ctx 
)
inlineexplicit

◆ ObservedContainer() [2/10]

template<typename ContainerT >
Nui::ObservedContainer< ContainerT >::ObservedContainer ( )
inlineexplicit

◆ ObservedContainer() [3/10]

template<typename ContainerT >
template<typename T = ContainerT>
Nui::ObservedContainer< ContainerT >::ObservedContainer ( CustomEventContextFlag_t  ,
EventContext ctx,
T &&  t 
)
inlineexplicit

◆ ObservedContainer() [4/10]

template<typename ContainerT >
template<typename T = ContainerT>
Nui::ObservedContainer< ContainerT >::ObservedContainer ( T &&  t)
inlineexplicit

◆ ObservedContainer() [5/10]

template<typename ContainerT >
Nui::ObservedContainer< ContainerT >::ObservedContainer ( RangeEventContext &&  rangeContext)
inlineexplicit

◆ ObservedContainer() [6/10]

template<typename ContainerT >
Nui::ObservedContainer< ContainerT >::ObservedContainer ( CustomEventContextFlag_t  ,
EventContext ctx,
RangeEventContext &&  rangeContext 
)
inlineexplicit

◆ ObservedContainer() [7/10]

template<typename ContainerT >
template<typename T = ContainerT>
Nui::ObservedContainer< ContainerT >::ObservedContainer ( T &&  t,
RangeEventContext &&  rangeContext 
)
inline

◆ ObservedContainer() [8/10]

template<typename ContainerT >
template<typename T = ContainerT>
Nui::ObservedContainer< ContainerT >::ObservedContainer ( CustomEventContextFlag_t  ,
EventContext ctx,
T &&  t,
RangeEventContext &&  rangeContext 
)
inline

◆ ObservedContainer() [9/10]

template<typename ContainerT >
Nui::ObservedContainer< ContainerT >::ObservedContainer ( const ObservedContainer< ContainerT > &  )
delete

◆ ObservedContainer() [10/10]

template<typename ContainerT >
Nui::ObservedContainer< ContainerT >::ObservedContainer ( ObservedContainer< ContainerT > &&  )
default

◆ ~ObservedContainer()

template<typename ContainerT >
Nui::ObservedContainer< ContainerT >::~ObservedContainer ( )
inline

Member Function Documentation

◆ assign() [1/3]

template<typename ContainerT >
template<typename Iterator >
void Nui::ObservedContainer< ContainerT >::assign ( Iterator  first,
Iterator  last 
)
inline

◆ assign() [2/3]

template<typename ContainerT >
void Nui::ObservedContainer< ContainerT >::assign ( size_type  count,
const value_type value 
)
inline

◆ assign() [3/3]

template<typename ContainerT >
void Nui::ObservedContainer< ContainerT >::assign ( std::initializer_list< value_type ilist)
inline

◆ at() [1/2]

template<typename ContainerT >
reference Nui::ObservedContainer< ContainerT >::at ( size_type  pos)
inline

◆ at() [2/2]

template<typename ContainerT >
const_reference Nui::ObservedContainer< ContainerT >::at ( size_type  pos) const
inline

◆ back() [1/2]

template<typename ContainerT >
reference Nui::ObservedContainer< ContainerT >::back ( )
inline

◆ back() [2/2]

template<typename ContainerT >
const_reference Nui::ObservedContainer< ContainerT >::back ( ) const
inline

◆ begin() [1/2]

template<typename ContainerT >
const_iterator Nui::ObservedContainer< ContainerT >::begin ( ) const
inlinenoexcept

◆ begin() [2/2]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::begin ( )
inlinenoexcept

◆ capacity()

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t<std::size_t, decltype(std::declval<U>).capacity())> Nui::ObservedContainer< ContainerT >::capacity ( ) const
inlinenoexcept

◆ cbegin()

template<typename ContainerT >
const_iterator Nui::ObservedContainer< ContainerT >::cbegin ( ) const
inlinenoexcept

◆ cend()

template<typename ContainerT >
const_iterator Nui::ObservedContainer< ContainerT >::cend ( ) const
inlinenoexcept

◆ clear()

template<typename ContainerT >
void Nui::ObservedContainer< ContainerT >::clear ( )
inline

◆ crbegin()

template<typename ContainerT >
const_reverse_iterator Nui::ObservedContainer< ContainerT >::crbegin ( ) const
inlinenoexcept

◆ crend()

template<typename ContainerT >
const_reverse_iterator Nui::ObservedContainer< ContainerT >::crend ( ) const
inlinenoexcept

◆ data() [1/2]

template<typename ContainerT >
const_pointer Nui::ObservedContainer< ContainerT >::data ( ) const
inlinenoexcept

◆ data() [2/2]

template<typename ContainerT >
pointer Nui::ObservedContainer< ContainerT >::data ( )
inlinenoexcept

◆ emplace()

template<typename ContainerT >
template<typename... Args>
iterator Nui::ObservedContainer< ContainerT >::emplace ( const_iterator  pos,
Args &&...  args 
)
inline

◆ emplace_back()

template<typename ContainerT >
template<typename... Args>
void Nui::ObservedContainer< ContainerT >::emplace_back ( Args &&...  args)
inline

◆ emplace_front()

template<typename ContainerT >
template<typename U = ContainerT, typename... Args>
Detail::PickFirst_t<void, decltype(std::declval<U>).emplace_front())> Nui::ObservedContainer< ContainerT >::emplace_front ( Args &&...  args)
inline

◆ empty()

template<typename ContainerT >
bool Nui::ObservedContainer< ContainerT >::empty ( ) const
inlinenoexcept

◆ end() [1/2]

template<typename ContainerT >
const_iterator Nui::ObservedContainer< ContainerT >::end ( ) const
inlinenoexcept

◆ end() [2/2]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::end ( )
inlinenoexcept

◆ erase() [1/4]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::erase ( const_iterator  first,
const_iterator  last 
)
inline

◆ erase() [2/4]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::erase ( const_iterator  pos)
inline

◆ erase() [3/4]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::erase ( iterator  first,
iterator  last 
)
inline

◆ erase() [4/4]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::erase ( iterator  pos)
inline

◆ eraseNotify()

template<typename ContainerT >
void Nui::ObservedContainer< ContainerT >::eraseNotify ( std::size_t  index,
std::size_t  high 
)
inlineprotected

◆ front() [1/2]

template<typename ContainerT >
reference Nui::ObservedContainer< ContainerT >::front ( )
inline

◆ front() [2/2]

template<typename ContainerT >
const_reference Nui::ObservedContainer< ContainerT >::front ( ) const
inline

◆ insert() [1/12]

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t< std::pair<typename ContainerT::iterator, bool>, decltype(std::declval<U>).insert(std::declval<const value_type&>)))> Nui::ObservedContainer< ContainerT >::insert ( const value_type value)
inline

◆ insert() [2/12]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::insert ( const_iterator  pos,
const value_type value 
)
inline

◆ insert() [3/12]

template<typename ContainerT >
template<typename Iterator >
iterator Nui::ObservedContainer< ContainerT >::insert ( const_iterator  pos,
Iterator  first,
Iterator  last 
)
inline

◆ insert() [4/12]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::insert ( const_iterator  pos,
size_type  count,
const value_type value 
)
inline

◆ insert() [5/12]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::insert ( const_iterator  pos,
std::initializer_list< value_type ilist 
)
inline

◆ insert() [6/12]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::insert ( const_iterator  pos,
value_type &&  value 
)
inline

◆ insert() [7/12]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::insert ( iterator  pos,
const value_type value 
)
inline

◆ insert() [8/12]

template<typename ContainerT >
template<typename Iterator >
iterator Nui::ObservedContainer< ContainerT >::insert ( iterator  pos,
Iterator  first,
Iterator  last 
)
inline

◆ insert() [9/12]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::insert ( iterator  pos,
size_type  count,
const value_type value 
)
inline

◆ insert() [10/12]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::insert ( iterator  pos,
std::initializer_list< value_type ilist 
)
inline

◆ insert() [11/12]

template<typename ContainerT >
iterator Nui::ObservedContainer< ContainerT >::insert ( iterator  pos,
value_type &&  value 
)
inline

◆ insert() [12/12]

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t< std::pair<typename ContainerT::iterator, bool>, decltype(std::declval<U>).insert(std::declval<value_type&&>)))> Nui::ObservedContainer< ContainerT >::insert ( value_type &&  value)
inline

◆ insertRangeChecked()

template<typename ContainerT >
void Nui::ObservedContainer< ContainerT >::insertRangeChecked ( std::size_t  low,
std::size_t  high,
RangeOperationType  type 
)
inlineprotected

◆ map() [1/2]

template<typename ContainerT >
constexpr auto Nui::ObservedContainer< ContainerT >::map ( auto &&  function)
constexpr

◆ map() [2/2]

template<typename ContainerT >
constexpr auto Nui::ObservedContainer< ContainerT >::map ( auto &&  function) const
constexpr

◆ max_size()

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t<std::size_t, decltype(std::declval<U>).max_size())> Nui::ObservedContainer< ContainerT >::max_size ( ) const
inlinenoexcept

◆ operator=() [1/3]

template<typename ContainerT >
ObservedContainer& Nui::ObservedContainer< ContainerT >::operator= ( const ObservedContainer< ContainerT > &  )
delete

◆ operator=() [2/3]

template<typename ContainerT >
ObservedContainer& Nui::ObservedContainer< ContainerT >::operator= ( ObservedContainer< ContainerT > &&  )
default

◆ operator=() [3/3]

template<typename ContainerT >
template<typename T = ContainerT>
ObservedContainer& Nui::ObservedContainer< ContainerT >::operator= ( T &&  t)
inline

◆ operator[]() [1/2]

template<typename ContainerT >
reference Nui::ObservedContainer< ContainerT >::operator[] ( size_type  pos)
inline

◆ operator[]() [2/2]

template<typename ContainerT >
const_reference Nui::ObservedContainer< ContainerT >::operator[] ( size_type  pos) const
inline

◆ pop_back()

template<typename ContainerT >
void Nui::ObservedContainer< ContainerT >::pop_back ( )
inline

◆ pop_front()

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t<void, decltype(std::declval<U>).pop_front())> Nui::ObservedContainer< ContainerT >::pop_front ( )
inline

◆ push_back() [1/2]

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t<void, decltype(std::declval<U>).push_back(std::declval<const value_type&>)))> Nui::ObservedContainer< ContainerT >::push_back ( const value_type value)
inline

◆ push_back() [2/2]

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t<void, decltype(std::declval<U>).push_back(std::declval<value_type>)))> Nui::ObservedContainer< ContainerT >::push_back ( value_type &&  value)
inline

◆ push_front() [1/2]

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t<void, decltype(std::declval<U>).push_front(std::declval<const value_type&>)))> Nui::ObservedContainer< ContainerT >::push_front ( const value_type value)
inline

◆ push_front() [2/2]

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t<void, decltype(std::declval<U>).push_front(std::declval<value_type>)))> Nui::ObservedContainer< ContainerT >::push_front ( value_type &&  value)
inline

◆ rangeContext() [1/2]

template<typename ContainerT >
RangeEventContext& Nui::ObservedContainer< ContainerT >::rangeContext ( )
inline

◆ rangeContext() [2/2]

template<typename ContainerT >
RangeEventContext const& Nui::ObservedContainer< ContainerT >::rangeContext ( ) const
inline

◆ rbegin() [1/2]

template<typename ContainerT >
const_reverse_iterator Nui::ObservedContainer< ContainerT >::rbegin ( ) const
inlinenoexcept

◆ rbegin() [2/2]

template<typename ContainerT >
reverse_iterator Nui::ObservedContainer< ContainerT >::rbegin ( )
inlinenoexcept

◆ registerAfterEffect()

template<typename ContainerT >
auto Nui::ObservedContainer< ContainerT >::registerAfterEffect ( )
inlineprotected

◆ rend() [1/2]

template<typename ContainerT >
const_reverse_iterator Nui::ObservedContainer< ContainerT >::rend ( ) const
inlinenoexcept

◆ rend() [2/2]

template<typename ContainerT >
reverse_iterator Nui::ObservedContainer< ContainerT >::rend ( )
inlinenoexcept

◆ reserve()

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t<void, decltype(std::declval<U>).reserve(std::declval<std::size_t>)))> Nui::ObservedContainer< ContainerT >::reserve ( size_type  capacity)
inline

◆ resize() [1/2]

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t<void, decltype(std::declval<U>).resize(std::declval<std::size_t>)))> Nui::ObservedContainer< ContainerT >::resize ( size_type  count)
inline

◆ resize() [2/2]

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t< void, decltype(std::declval<U>).resize(std::declval<std::size_t>), std::declval<value_type const&>)))> Nui::ObservedContainer< ContainerT >::resize ( size_type  count,
value_type const &  fillValue 
)
inline

◆ shrink_to_fit()

template<typename ContainerT >
template<typename U = ContainerT>
Detail::PickFirst_t<void, decltype(std::declval<U>).shrink_to_fit())> Nui::ObservedContainer< ContainerT >::shrink_to_fit ( )
inline

◆ size()

template<typename ContainerT >
std::size_t Nui::ObservedContainer< ContainerT >::size ( ) const
inlinenoexcept

◆ swap()

template<typename ContainerT >
void Nui::ObservedContainer< ContainerT >::swap ( ContainerT &  other)
inline

◆ update()

template<typename ContainerT >
void Nui::ObservedContainer< ContainerT >::update ( bool  force = false) const
inlineoverrideprotectedvirtual

Reimplemented from Nui::ObservedBase.

◆ value() [1/2]

template<typename ContainerT >
ContainerT& Nui::ObservedContainer< ContainerT >::value ( )
inline

◆ value() [2/2]

template<typename ContainerT >
ContainerT const& Nui::ObservedContainer< ContainerT >::value ( ) const
inline

Friends And Related Function Documentation

◆ ContainerWrapUtility::PointerWrapper< typename ContainerT::value_type, ContainerT >

template<typename ContainerT >
friend class ContainerWrapUtility::PointerWrapper< typename ContainerT::value_type, ContainerT >
friend

◆ ContainerWrapUtility::ReferenceWrapper< typename ContainerT::value_type, ContainerT >

template<typename ContainerT >
friend class ContainerWrapUtility::ReferenceWrapper< typename ContainerT::value_type, ContainerT >
friend

Member Data Documentation

◆ afterEffectId_

template<typename ContainerT >
EventContext::EventIdType Nui::ObservedContainer< ContainerT >::afterEffectId_
mutableprotected

◆ moveDetector_

template<typename ContainerT >
MoveDetector Nui::ObservedContainer< ContainerT >::moveDetector_
protected

◆ rangeContext_

template<typename ContainerT >
std::shared_ptr<RangeEventContext> Nui::ObservedContainer< ContainerT >::rangeContext_
mutableprotected

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