MUSX Document Model
|
A pool that manages collections of DetailsBase
objects, organized by XML node names and Cmper
values.
More...
#include <ObjectPool.h>
Public Member Functions | |
void | add (const std::string &nodeName, const std::shared_ptr< DetailsBase > &instance) |
DetailsPool version of ObjectPool::add. | |
template<typename T , typename std::enable_if_t<!std::is_base_of_v< EntryDetailsBase, T >, int > = 0> | |
std::vector< std::shared_ptr< T > > | getArray (Cmper partId, Cmper cmper1, std::optional< Cmper > cmper2=std::nullopt) const |
DetailsPool version of ObjectPool::getArray. | |
template<typename T , typename std::enable_if_t< std::is_base_of_v< EntryDetailsBase, T >, int > = 0> | |
std::vector< std::shared_ptr< T > > | getArray (Cmper partId, EntryNumber entnum) const |
EntryDetailsPool version of ObjectPool::getArray. | |
template<typename T , typename std::enable_if_t<!std::is_base_of_v< EntryDetailsBase, T >, int > = 0> | |
std::shared_ptr< T > | get (Cmper partId, Cmper cmper1, Cmper cmper2, std::optional< Inci > inci=std::nullopt) const |
DetailsPool version of ObjectPool::get. | |
template<typename T , typename std::enable_if_t< std::is_base_of_v< EntryDetailsBase, T >, int > = 0> | |
std::shared_ptr< T > | get (Cmper partId, EntryNumber entnum, std::optional< Inci > inci=std::nullopt) const |
EntryDetailsPool version of ObjectPool::get. | |
template<typename T , typename std::enable_if_t< std::is_base_of_v< NoteDetailsBase, T >, int > = 0> | |
std::shared_ptr< T > | getForNote (const NoteInfoPtr noteInfo) |
Returns the detail for a particular note. | |
Additional Inherited Members | |
![]() | |
using | ObjectPtr = std::shared_ptr< DetailsBase > |
shared pointer to ObjectBaseType | |
virtual | ~ObjectPool ()=default |
virtual destructor | |
void | add (const ObjectKey &key, ObjectPtr object) |
Adds an OthersBase object to the pool. | |
std::vector< std::shared_ptr< T > > | getArray (const ObjectKey &key) const |
Retrieves a vector of objects of a specific type from the pool. | |
std::vector< std::shared_ptr< T > > | getArrayForPart (const ObjectKey &key) const |
Retrieves a vector of objects of a specific type from the pool. | |
std::shared_ptr< T > | get (const ObjectKey &key) const |
Retrieves the first (and usually only) object of a specific type from the pool. | |
std::shared_ptr< T > | getEffectiveForPart (const ObjectKey &key) const |
Retrieves the first (and usually only) object of a specific type from the pool for a part. | |
A pool that manages collections of DetailsBase
objects, organized by XML node names and Cmper
values.
Examples of OneCmperBase
classes are OthersBase and TextsBase.