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

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

#include <Registry.h>

Inheritance diagram for Registry::GroupItemBase:
[legend]
Collaboration diagram for Registry::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< detail::BaseItem, std::unique_ptr< detail::BaseItem >, const Identifier & >
using value_type = std::unique_ptr< detail::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< detail::BaseItem, std::unique_ptr< detail::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)
 
bool empty () const
 

Friends

REGISTRIES_API void detail::RegisterItem (GroupItemBase &registry, const Placement &placement, detail::BaseItemPtr pItem)
 

Additional Inherited Members

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

Detailed Description

Common abstract base class for items that group other items.

Definition at line 211 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 221 of file Registry.h.

Constructor & Destructor Documentation

◆ GroupItemBase()

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

◆ ~GroupItemBase()

GroupItemBase::~GroupItemBase ( )
overridepure virtual

Definition at line 720 of file Registry.cpp.

720{}

Member Function Documentation

◆ GetOrdering()

auto GroupItemBase::GetOrdering ( ) const
virtual

Default implementation returns Strong.

Reimplemented in anonymous_namespace{Registry.cpp}::PlaceHolder.

Definition at line 721 of file Registry.cpp.

721{ return Strong; }

References Strong.

Referenced by anonymous_namespace{Registry.cpp}::CollectedItems::SubordinateMultipleItems().

Here is the caller graph for this function:

◆ operator=()

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

Friends And Related Function Documentation

◆ detail::RegisterItem

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

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