Audacity 3.2.0
Public Types | Public Member Functions | Friends | List of all members
Registry::detail::GroupItemBase Struct Referenceabstract

Common abstract base class for items that group other items. More...

#include <Registry.h>

Inheritance diagram for Registry::detail::GroupItemBase:
[legend]
Collaboration diagram for Registry::detail::GroupItemBase:
[legend]

Public Types

enum  Ordering { Anonymous , Weak , Strong }
 Choose treatment of the children of the group when merging trees. More...
 
- Public Types inherited from Composite::Base< BaseItem, std::unique_ptr< BaseItem >, const Identifier & >
using value_type = std::unique_ptr< BaseItem >
 
using Items = std::vector< value_type >
 

Public Member Functions

 GroupItemBase (const GroupItemBase &)=delete
 
GroupItemBaseoperator= (const GroupItemBase &)=delete
 
 ~GroupItemBase () override=0
 
virtual Ordering GetOrdering () const
 Default implementation returns Strong. More...
 
- Public Member Functions inherited from Composite::Base< BaseItem, std::unique_ptr< BaseItem >, const Identifier & >
 Base (ComponentArgs... args)
 
 Base (const Base &)=delete
 
Baseoperator= (const Base &)=delete
 
auto begin () const
 
auto end () const
 
auto cbegin () const
 
auto cend () const
 
auto rbegin () const
 
auto rend () const
 
auto crbegin () const
 
auto crend () const
 
void push_back (value_type ptr)
 
auto size () const noexcept
 
bool empty () const
 

Friends

REGISTRIES_API void RegisterItem (GroupItemBase &registry, const Placement &placement, BaseItemPtr pItem)
 Type-erased implementation details, don't call directly. More...
 

Additional Inherited Members

- Protected Attributes inherited from Composite::Base< BaseItem, std::unique_ptr< BaseItem >, const Identifier & >
Items items
 

Detailed Description

Common abstract base class for items that group other items.

Definition at line 235 of file Registry.h.

Member Enumeration Documentation

◆ Ordering

Choose treatment of the children of the group when merging trees.

Enumerator
Anonymous 

Item's name is ignored (omitted from paths) and sub-items are merged individually, sequenced by preferences or ordering hints

Weak 

Item's name is significant in paths, but its sequence of children may be overridden if it merges with another group at the same path

Strong 

Item's name is significant and it is intended to be the unique strongly ordered group at its path (but this could fail and cause an alpha-build-only error message during merging)

Definition at line 245 of file Registry.h.

Constructor & Destructor Documentation

◆ GroupItemBase()

Registry::detail::GroupItemBase::GroupItemBase ( const GroupItemBase )
delete

◆ ~GroupItemBase()

Registry::GroupItemBase::~GroupItemBase ( )
overridepure virtual

Definition at line 720 of file Registry.cpp.

720{}

Member Function Documentation

◆ GetOrdering()

auto Registry::GroupItemBase::GetOrdering ( ) const
virtual

Default implementation returns Strong.

Definition at line 721 of file Registry.cpp.

721{ return Strong; }

◆ operator=()

GroupItemBase & Registry::detail::GroupItemBase::operator= ( const GroupItemBase )
delete

Friends And Related Function Documentation

◆ RegisterItem

REGISTRIES_API void RegisterItem ( GroupItemBase registry,
const Placement placement,
BaseItemPtr  pItem 
)
friend

Type-erased implementation details, don't call directly.


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