TracktionEngine
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType > Class Template Referenceabstract
Inheritance diagram for tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >:

Public Types

using ScopedLockType = typename CriticalSectionType::ScopedLockType
 

Public Member Functions

 ValueTreeObjectList (const juce::ValueTree &parentTree)
 
 ~ValueTreeObjectList () override
 
int size () const
 
bool isEmpty () const noexcept
 
ObjectType * operator[] (int idx) const
 
ObjectType * at (int idx)
 
ObjectType ** begin ()
 
ObjectType *const * begin () const
 
ObjectType ** end ()
 
ObjectType *const * end () const
 
void rebuildObjects ()
 
void freeObjects ()
 
virtual bool isSuitableType (const juce::ValueTree &) const =0
 
virtual ObjectType * createNewObject (const juce::ValueTree &)=0
 
virtual void deleteObject (ObjectType *)=0
 
virtual void newObjectAdded (ObjectType *)=0
 
virtual void objectRemoved (ObjectType *)=0
 
virtual void objectOrderChanged ()=0
 
void valueTreeChildAdded (juce::ValueTree &, juce::ValueTree &tree) override
 
void valueTreeChildRemoved (juce::ValueTree &exParent, juce::ValueTree &tree, int) override
 
void valueTreeChildOrderChanged (juce::ValueTree &tree, int, int) override
 
void valueTreePropertyChanged (juce::ValueTree &, const juce::Identifier &) override
 
void valueTreeParentChanged (juce::ValueTree &) override
 
void valueTreeRedirected (juce::ValueTree &) override
 
int compareElements (ObjectType *first, ObjectType *second) const
 

Public Attributes

juce::Array< ObjectType * > objects
 
CriticalSectionType arrayLock
 

Protected Member Functions

void deleteAllObjects ()
 
bool isChildTree (juce::ValueTree &v) const
 
int indexOf (const juce::ValueTree &v) const noexcept
 
void sortArray ()
 

Protected Attributes

juce::ValueTree parent
 

Member Typedef Documentation

◆ ScopedLockType

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
using tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::ScopedLockType = typename CriticalSectionType::ScopedLockType

Constructor & Destructor Documentation

◆ ValueTreeObjectList()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::ValueTreeObjectList ( const juce::ValueTree &  parentTree)

◆ ~ValueTreeObjectList()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::~ValueTreeObjectList ( )
override

Member Function Documentation

◆ size()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
int tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::size ( ) const

◆ isEmpty()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
bool tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::isEmpty ( ) const
noexcept

◆ operator[]()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
ObjectType* tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::operator[] ( int  idx) const

◆ at()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
ObjectType* tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::at ( int  idx)

◆ begin() [1/2]

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
ObjectType** tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::begin ( )

◆ begin() [2/2]

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
ObjectType* const* tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::begin ( ) const

◆ end() [1/2]

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
ObjectType** tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::end ( )

◆ end() [2/2]

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
ObjectType* const* tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::end ( ) const

◆ rebuildObjects()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::rebuildObjects ( )

◆ freeObjects()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::freeObjects ( )

◆ isSuitableType()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
virtual bool tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::isSuitableType ( const juce::ValueTree &  ) const
pure virtual

◆ createNewObject()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
virtual ObjectType* tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::createNewObject ( const juce::ValueTree &  )
pure virtual

◆ deleteObject()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
virtual void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::deleteObject ( ObjectType *  )
pure virtual

◆ newObjectAdded()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
virtual void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::newObjectAdded ( ObjectType *  )
pure virtual

◆ objectRemoved()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
virtual void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::objectRemoved ( ObjectType *  )
pure virtual

◆ objectOrderChanged()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
virtual void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::objectOrderChanged ( )
pure virtual

◆ valueTreeChildAdded()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildAdded ( juce::ValueTree &  ,
juce::ValueTree &  tree 
)
override

◆ valueTreeChildRemoved()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildRemoved ( juce::ValueTree &  exParent,
juce::ValueTree &  tree,
int   
)
override

◆ valueTreeChildOrderChanged()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildOrderChanged ( juce::ValueTree &  tree,
int  ,
int   
)
override

◆ valueTreePropertyChanged()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreePropertyChanged ( juce::ValueTree &  ,
const juce::Identifier &   
)
override

◆ valueTreeParentChanged()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeParentChanged ( juce::ValueTree &  )
override

◆ valueTreeRedirected()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeRedirected ( juce::ValueTree &  )
override

◆ deleteAllObjects()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::deleteAllObjects ( )
protected

◆ isChildTree()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
bool tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::isChildTree ( juce::ValueTree &  v) const
protected

◆ indexOf()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
int tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::indexOf ( const juce::ValueTree &  v) const
protectednoexcept

◆ sortArray()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::sortArray ( )
protected

◆ compareElements()

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
int tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::compareElements ( ObjectType *  first,
ObjectType *  second 
) const

Member Data Documentation

◆ objects

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
juce::Array<ObjectType*> tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::objects

◆ arrayLock

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
CriticalSectionType tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::arrayLock

◆ parent

template<typename ObjectType , typename CriticalSectionType = juce::DummyCriticalSection>
juce::ValueTree tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::parent
protected

The documentation for this class was generated from the following file: