MarlinMT  0.1.0
marlinmt::book::SingleMemLayout< T, Args_t > Class Template Reference

MemLayout for Single object instance. More...

#include <MemLayout.h>

Inherits marlinmt::book::MemLayout.

Public Member Functions

 SingleMemLayout (Args_t... args)
 
 SingleMemLayout (const SingleMemLayout &)=default
 
SingleMemLayoutoperator= (const SingleMemLayout &)=default
 
 SingleMemLayout (SingleMemLayout &&) noexcept=default
 
SingleMemLayoutoperator= (SingleMemLayout &&) noexcept=default
 
 ~SingleMemLayout () override final=default
 
- Public Member Functions inherited from marlinmt::book::MemLayout
template<typename T >
std::shared_ptr< const T > at (std::size_t idx) const
 Get Resource for an instance. More...
 
template<typename T >
std::shared_ptr< T > at (std::size_t idx)
 Get Resource for an instance. More...
 
template<typename T >
std::shared_ptr< const T > merged ()
 Get Completed Resource. More...
 
 MemLayout ()=default
 
 MemLayout (const MemLayout &)=default
 
MemLayoutoperator= (const MemLayout &)=default
 
 MemLayout (MemLayout &&)=default
 
MemLayoutoperator= (MemLayout &&)=default
 
virtual ~MemLayout ()=default
 

Private Member Functions

std::shared_ptr< void > impAt (std::size_t) const override final
 implementation from at More...
 
std::shared_ptr< void > impMerged () override final
 

Private Attributes

std::shared_ptr< T > _object {nullptr}
 

Additional Inherited Members

Detailed Description

template<typename T, typename... Args_t>
class marlinmt::book::SingleMemLayout< T, Args_t >

MemLayout for Single object instance.

Template Parameters
Tstored Object Type

Definition at line 125 of file MemLayout.h.

Constructor & Destructor Documentation

◆ SingleMemLayout() [1/3]

template<typename T , typename... Args_t>
marlinmt::book::SingleMemLayout< T, Args_t >::SingleMemLayout ( Args_t...  args)
inlineexplicit

Definition at line 127 of file MemLayout.h.

References marlinmt::book::MemLayout::operator=().

◆ SingleMemLayout() [2/3]

template<typename T , typename... Args_t>
marlinmt::book::SingleMemLayout< T, Args_t >::SingleMemLayout ( const SingleMemLayout< T, Args_t > &  )
default

◆ SingleMemLayout() [3/3]

template<typename T , typename... Args_t>
marlinmt::book::SingleMemLayout< T, Args_t >::SingleMemLayout ( SingleMemLayout< T, Args_t > &&  )
defaultnoexcept

◆ ~SingleMemLayout()

template<typename T , typename... Args_t>
marlinmt::book::SingleMemLayout< T, Args_t >::~SingleMemLayout ( )
finaloverridedefault

Member Function Documentation

◆ impAt()

template<typename T , typename... Args_t>
std::shared_ptr< void > marlinmt::book::SingleMemLayout< T, Args_t >::impAt ( std::size_t  idx) const
inlinefinaloverrideprivatevirtual

implementation from at

Implements marlinmt::book::MemLayout.

Definition at line 138 of file MemLayout.h.

◆ impMerged()

template<typename T , typename... Args_t>
std::shared_ptr< void > marlinmt::book::SingleMemLayout< T, Args_t >::impMerged ( )
inlinefinaloverrideprivatevirtual
Note
cheap merge

Implements marlinmt::book::MemLayout.

Definition at line 143 of file MemLayout.h.

◆ operator=() [1/2]

template<typename T , typename... Args_t>
SingleMemLayout& marlinmt::book::SingleMemLayout< T, Args_t >::operator= ( const SingleMemLayout< T, Args_t > &  )
default

◆ operator=() [2/2]

template<typename T , typename... Args_t>
SingleMemLayout& marlinmt::book::SingleMemLayout< T, Args_t >::operator= ( SingleMemLayout< T, Args_t > &&  )
defaultnoexcept

Member Data Documentation

◆ _object

template<typename T , typename... Args_t>
std::shared_ptr< T > marlinmt::book::SingleMemLayout< T, Args_t >::_object {nullptr}
private

Definition at line 147 of file MemLayout.h.


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