libebml_ng
Public Member Functions | List of all members
ebml::childSlot_t< T > Class Template Reference

A templated helper class managing a child slot within an EBML master element. More...

#include <childSlot_t.h>

Public Member Functions

 childSlot_t (ebmlMasterElement *parent, const childTypeSpec_t &, ebml::ptr< T > &childslot, bool allownull=true)
 
childSlot_t< T > & operator= (const ebml::ptr< T > &item)
 
childSlot_t< T > & operator= (ebml::ptr< T > &&item)
 
template<typename U >
std::enable_if_t< std::is_base_of< ebmlElement, T >::value &&std::is_base_of< T, U >::value &&!std::is_same< T, U >::value, childSlot_t< T > & > operator= (const ebml::ptr< U > &item)
 
template<typename U >
std::enable_if_t< std::is_base_of< ebmlElement, T >::value &&std::is_base_of< T, U >::value &&!std::is_same< T, U >::value, childSlot_t< T > & > operator= (ebml::ptr< U > &&item)
 
bool operator== (const std::nullptr_t &)
 
bool operator== (const ebml::ptr< T > &item)
 
bool operator== (const ebml::ptr< const T > &item)
 
template<typename U >
std::enable_if_t< std::is_base_of< ebmlElement, T >::value &&std::is_base_of< T, U >::value &&!std::is_same< T, U >::value, bool & > operator== (const ebml::ptr< U > &item)
 
bool operator== (const childSlot_t< T > &item)
 
 operator ebml::ptr< T > () const
 
T * operator-> () const
 
const ebml::ptr< T > & get () const
 
 operator T & () const
 
template<typename U >
U & as () const
 

Detailed Description

template<typename T = ebmlElement>
class ebml::childSlot_t< T >

A templated helper class managing a child slot within an EBML master element.

This class provides methods to assign, compare, and access a child element using smart pointers. It ensures that the child being attached is valid according to the parent's type specification and updates parent pointers.

Template Parameters
TThe type of the EBML element stored in the slot. Defaults to ebmlElement.

Constructor & Destructor Documentation

◆ childSlot_t()

template<typename T = ebmlElement>
ebml::childSlot_t< T >::childSlot_t ( ebmlMasterElement parent,
const childTypeSpec_t ,
ebml::ptr< T > &  childslot,
bool  allownull = true 
)

Member Function Documentation

◆ as()

template<typename T = ebmlElement>
template<typename U >
U& ebml::childSlot_t< T >::as ( ) const
inline

◆ get()

template<typename T = ebmlElement>
const ebml::ptr<T>& ebml::childSlot_t< T >::get ( ) const

◆ operator ebml::ptr< T >()

template<typename T = ebmlElement>
ebml::childSlot_t< T >::operator ebml::ptr< T > ( ) const

◆ operator T &()

template<typename T = ebmlElement>
ebml::childSlot_t< T >::operator T& ( ) const

◆ operator->()

template<typename T = ebmlElement>
T* ebml::childSlot_t< T >::operator-> ( ) const

◆ operator=() [1/4]

template<typename T = ebmlElement>
childSlot_t<T>& ebml::childSlot_t< T >::operator= ( const ebml::ptr< T > &  item)

◆ operator=() [2/4]

template<typename T = ebmlElement>
childSlot_t<T>& ebml::childSlot_t< T >::operator= ( ebml::ptr< T > &&  item)

◆ operator=() [3/4]

template<typename T = ebmlElement>
template<typename U >
std::enable_if_t<std::is_base_of<ebmlElement, T>::value && std::is_base_of<T, U>::value && !std::is_same<T, U>::value, childSlot_t<T>&> ebml::childSlot_t< T >::operator= ( const ebml::ptr< U > &  item)

◆ operator=() [4/4]

template<typename T = ebmlElement>
template<typename U >
std::enable_if_t<std::is_base_of<ebmlElement, T>::value && std::is_base_of<T, U>::value && !std::is_same<T, U>::value, childSlot_t<T>&> ebml::childSlot_t< T >::operator= ( ebml::ptr< U > &&  item)

◆ operator==() [1/5]

template<typename T = ebmlElement>
bool ebml::childSlot_t< T >::operator== ( const std::nullptr_t &  )

◆ operator==() [2/5]

template<typename T = ebmlElement>
bool ebml::childSlot_t< T >::operator== ( const ebml::ptr< T > &  item)

◆ operator==() [3/5]

template<typename T = ebmlElement>
bool ebml::childSlot_t< T >::operator== ( const ebml::ptr< const T > &  item)

◆ operator==() [4/5]

template<typename T = ebmlElement>
template<typename U >
std::enable_if_t<std::is_base_of<ebmlElement, T>::value && std::is_base_of<T, U>::value && !std::is_same<T, U>::value, bool&> ebml::childSlot_t< T >::operator== ( const ebml::ptr< U > &  item)

◆ operator==() [5/5]

template<typename T = ebmlElement>
bool ebml::childSlot_t< T >::operator== ( const childSlot_t< T > &  item)

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