HdInstanceRegistry is a dictionary container of HdInstance. More...
Public Types | |
typedef HdInstance< VALUE > | InstanceType |
typedef InstanceType::Dictionary::const_iterator | const_iterator |
Returns a const iterator being/end of dictionary. More... | |
Public Member Functions | |
HdInstanceRegistry (const HdInstanceRegistry &other) | |
Copy constructor. More... | |
InstanceType | GetInstance (typename InstanceType::KeyType const &key) |
Returns a shared instance for given key. More... | |
InstanceType | FindInstance (typename InstanceType::KeyType const &key, bool *found) |
Returns a shared instance for a given key only if the key exists in the dictionary. More... | |
size_t | GarbageCollect (int recycleCount=0) |
Removes unreferenced entries and returns the count of remaining entries. More... | |
const_iterator | begin () const |
const_iterator | end () const |
size_t | size () const |
void | Invalidate () |
HdInstanceRegistry is a dictionary container of HdInstance.
This class is almost just a dictionary from key to value. For cleaning unused entries, it provides GarbageCollect() API. It sweeps all entries in the dictionary and erase unreferenced entries. When HdInstance::ValueType is shared_ptr, it is regarded as unreferenced if the shared_ptr is unique (use_count==1). Note that Key is not involved to determine the lifetime of entries.
Definition at line 146 of file instanceRegistry.h.
typedef InstanceType::Dictionary::const_iterator const_iterator |
Returns a const iterator being/end of dictionary.
Mainly used for resource auditing.
Definition at line 177 of file instanceRegistry.h.
|
inline |
Copy constructor.
Need as HdInstanceRegistry is placed in a map and mutex is not copy constructable, so can't use default
Definition at line 154 of file instanceRegistry.h.
HdInstance< VALUE > FindInstance | ( | typename InstanceType::KeyType const & | key, |
bool * | found | ||
) |
Returns a shared instance for a given key only if the key exists in the dictionary.
Definition at line 225 of file instanceRegistry.h.
size_t GarbageCollect | ( | int | recycleCount = 0 | ) |
Removes unreferenced entries and returns the count of remaining entries.
When recycleCount is greater than zero, unreferenced entries will not be removed until GarbageCollect() is called that many more times, i.e. allowing unreferenced entries to be recycled if they are needed again.
Definition at line 248 of file instanceRegistry.h.
HdInstance< VALUE > GetInstance | ( | typename InstanceType::KeyType const & | key | ) |
Returns a shared instance for given key.
Definition at line 202 of file instanceRegistry.h.