Audacity 3.2.0
|
Classes | |
struct | BaseItem |
struct | Builder |
struct | ComputedItem |
struct | ComputedItemBase |
struct | ConsUnique |
struct | GroupItemBase |
Common abstract base class for items that group other items. More... | |
struct | IndirectItem |
An item that delegates to another held in a shared pointer. More... | |
struct | IndirectItemBase |
struct | Visitor |
Type-erasing adapter class (with no std::function overhead) More... | |
class | VisitorBase |
Typedefs | |
using | BaseItemPtr = std::unique_ptr< BaseItem > |
using | BaseItemSharedPtr = std::shared_ptr< BaseItem > |
template<typename Type , typename List > | |
using | ConsUnique_t = typename ConsUnique< Type, List >::type |
template<typename RegistryTraits > | |
using | VisitedNodeTypes = ConsUnique_t< const GroupItem< RegistryTraits >, Map_t< Fn< std::add_const_t >, typename RegistryTraits::NodeTypes > > |
template<typename RegistryTraits > | |
using | VisitedLeafTypes = ConsUnique_t< const SingleItem, Map_t< Fn< std::add_const_t >, typename RegistryTraits::LeafTypes > > |
template<typename Types > | |
using | VisitorFunction = std::function< void(Head_t< Types > &, const Path &)> |
template<typename RegistryTraits > | |
using | NodeVisitorFunction = VisitorFunction< VisitedNodeTypes< RegistryTraits > > |
template<typename RegistryTraits > | |
using | LeafVisitorFunction = VisitorFunction< VisitedLeafTypes< RegistryTraits > > |
template<typename RegistryTraits > | |
using | VisitorFunctionTriple = std::tuple< NodeVisitorFunction< RegistryTraits >, LeafVisitorFunction< RegistryTraits >, NodeVisitorFunction< RegistryTraits > > |
Functions | |
REGISTRIES_API void | RegisterItem (GroupItemBase ®istry, const Placement &placement, BaseItemPtr pItem) |
Type-erased implementation details, don't call directly. More... | |
template<typename V > | |
auto | ForwardTuple_ (const V &visitor, std::false_type) |
template<typename V > | |
auto | ForwardTuple_ (const V &visitor, std::true_type) |
template<typename V > | |
auto | ForwardTuple (const V &visitor) |
template<typename V > | |
auto | MakeTuple_ (const V &visitor, std::false_type) |
template<typename V > | |
auto | MakeTuple_ (const V &visitor, std::true_type) |
template<typename V > | |
auto | MakeTuple (const V &visitor) |
template<typename V > | |
auto | CaptureTuple_ (const V &visitor, std::true_type) |
template<typename V > | |
auto | CaptureTuple_ (const V &visitor, std::false_type) |
template<bool Reference, typename V > | |
auto | CaptureTuple (const V &visitor) |
template<typename Types , bool Reference, typename Visitor > | |
VisitorFunction< Types > | MakeVisitorFunction (const Visitor &visitor) |
Capture a callable for Visit() in a std::function wrapper. More... | |
REGISTRIES_API void | Visit (VisitorBase &visitor, const GroupItemBase *pTopItem, const GroupItemBase *pRegistry, void *pComputedItemContext) |
Variables | |
template<typename Visitors > | |
static constexpr auto | TupleSize |
How large a tuple to make from Visitors. More... | |
using Registry::detail::BaseItemPtr = typedef std::unique_ptr<BaseItem> |
Definition at line 91 of file Registry.h.
using Registry::detail::BaseItemSharedPtr = typedef std::shared_ptr<BaseItem> |
Definition at line 93 of file Registry.h.
using Registry::detail::ConsUnique_t = typedef typename ConsUnique<Type, List>::type |
Definition at line 116 of file Registry.h.
using Registry::detail::LeafVisitorFunction = typedef VisitorFunction<VisitedLeafTypes<RegistryTraits> > |
Definition at line 460 of file Registry.h.
using Registry::detail::NodeVisitorFunction = typedef VisitorFunction<VisitedNodeTypes<RegistryTraits> > |
Definition at line 458 of file Registry.h.
using Registry::detail::VisitedLeafTypes = typedef ConsUnique_t<const SingleItem, Map_t<Fn<std::add_const_t>, typename RegistryTraits::LeafTypes> > |
Definition at line 122 of file Registry.h.
using Registry::detail::VisitedNodeTypes = typedef ConsUnique_t<const GroupItem<RegistryTraits>, Map_t<Fn<std::add_const_t>, typename RegistryTraits::NodeTypes> > |
Definition at line 119 of file Registry.h.
using Registry::detail::VisitorFunction = typedef std::function<void(Head_t<Types> &, const Path &)> |
Definition at line 125 of file Registry.h.
using Registry::detail::VisitorFunctionTriple = typedef std::tuple< NodeVisitorFunction<RegistryTraits>, LeafVisitorFunction<RegistryTraits>, NodeVisitorFunction<RegistryTraits> > |
Definition at line 462 of file Registry.h.
auto Registry::detail::CaptureTuple | ( | const V & | visitor | ) |
Definition at line 434 of file Registry.h.
References CaptureTuple_().
auto Registry::detail::CaptureTuple_ | ( | const V & | visitor, |
std::false_type | |||
) |
Definition at line 430 of file Registry.h.
References MakeTuple().
auto Registry::detail::CaptureTuple_ | ( | const V & | visitor, |
std::true_type | |||
) |
Definition at line 426 of file Registry.h.
References ForwardTuple().
Referenced by CaptureTuple().
auto Registry::detail::ForwardTuple | ( | const V & | visitor | ) |
Definition at line 408 of file Registry.h.
References ForwardTuple_().
Referenced by Registry::detail::Visitor< RegistryTraits, Visitors >::BeginGroup(), CaptureTuple_(), Registry::detail::Visitor< RegistryTraits, Visitors >::EndGroup(), and Registry::detail::Visitor< RegistryTraits, Visitors >::Visit().
auto Registry::detail::ForwardTuple_ | ( | const V & | visitor, |
std::false_type | |||
) |
Definition at line 400 of file Registry.h.
Referenced by ForwardTuple().
auto Registry::detail::ForwardTuple_ | ( | const V & | visitor, |
std::true_type | |||
) |
Definition at line 404 of file Registry.h.
References Tuple::ForwardAll().
auto Registry::detail::MakeTuple | ( | const V & | visitor | ) |
Definition at line 421 of file Registry.h.
References MakeTuple_().
Referenced by CaptureTuple_().
auto Registry::detail::MakeTuple_ | ( | const V & | visitor, |
std::false_type | |||
) |
Definition at line 413 of file Registry.h.
Referenced by MakeTuple().
auto Registry::detail::MakeTuple_ | ( | const V & | visitor, |
std::true_type | |||
) |
Definition at line 417 of file Registry.h.
References Tuple::All().
VisitorFunction< Types > Registry::detail::MakeVisitorFunction | ( | const Visitor & | visitor | ) |
Capture a callable for Visit() in a std::function wrapper.
Definition at line 440 of file Registry.h.
void Registry::detail::RegisterItem | ( | GroupItemBase & | registry, |
const Placement & | placement, | ||
BaseItemPtr | pItem | ||
) |
Type-erased implementation details, don't call directly.
Definition at line 765 of file Registry.cpp.
References details::end(), Registry::Placement::hint, Composite::Base< Component, ComponentPointer, ComponentArgs >::items, and Registry::Placement::path.
Referenced by Registry::RegisterItem().
void Registry::detail::Visit | ( | VisitorBase & | visitor, |
const GroupItemBase * | pTopItem, | ||
const GroupItemBase * | pRegistry, | ||
void * | pComputedItemContext | ||
) |
Definition at line 725 of file Registry.cpp.
References audacity::BasicSettings::Flush(), gPrefs, and anonymous_namespace{Registry.cpp}::VisitItem().
|
staticconstexpr |
How large a tuple to make from Visitors.
Definition at line 451 of file Registry.h.