Audacity 3.2.0
|
Some implementation details for ClientData. More...
#include <memory>
#include <mutex>
#include <type_traits>
Go to the source code of this file.
Classes | |
struct | ClientData::Lockable< Object, LockingPolicy > |
Decorator template injects type Lock and method lock() into interface of Object. More... | |
struct | ClientData::Lockable< Object, NoLocking > |
Specialization for trivial, non-locking policy. More... | |
struct | ClientData::Lockable< Object, NoLocking >::Lock |
Empty class. More... | |
struct | ClientData::Lockable< Object, NonrecursiveLocking > |
Specialization for real locking with std::mutex. More... | |
struct | ClientData::Lockable< Object, RecursiveLocking > |
Specialization for real locking with std::recursive_mutex. More... | |
struct | ClientData::Locked< Lockable > |
Decorated reference to a ClientData::Lockable, with a current lock on it. More... | |
struct | ClientData::Copyable< Container, CopyingPolicy > |
Decorator template injects copy and move operators for container of pointers. More... | |
struct | ClientData::Copyable< Container, SkipCopying > |
Specialization that ignores contents of the source when copying (not when moving). More... | |
struct | ClientData::Copyable< Container, ShallowCopying > |
Specialization that copies pointers, not sub-objects; strong guarantee for assignment. More... | |
struct | ClientData::Copyable< Container, DeepCopying > |
Specialization that clones sub-objects when copying; strong guarantee for assignment. More... | |
Namespaces | |
namespace | ClientData |
Utility ClientData::Site to register hooks into a host class that attach client data. | |
Enumerations | |
enum | ClientData::LockingPolicy { ClientData::NoLocking , ClientData::NonrecursiveLocking , ClientData::RecursiveLocking } |
Statically specify whether there is mutual exclusion (separately for the table of factories, and for the per-host container of client objects). More... | |
enum | ClientData::CopyingPolicy { ClientData::SkipCopying , ClientData::ShallowCopying , ClientData::DeepCopying } |
Statically specify how the ClientData::Site implements its copy constructor and assignment. More... | |
Functions | |
template<typename Ptr > | |
static const Ptr & | ClientData::Dereferenceable (Ptr &p) |
Conversion allowing operator * on any Pointer parameter of ClientData::Site. More... | |
template<typename Obj > | |
static std::shared_ptr< Obj > | ClientData::Dereferenceable (std::weak_ptr< Obj > &p) |
Overload of ClientData::Dereferenceable returns an rvalue. More... | |
Some implementation details for ClientData.
Audacity: A Digital Audio Editor
Paul Licameli
Definition in file ClientDataHelpers.h.