Proton DotNet
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Properties | List of all members
Apache.Qpid.Proton.Utilities.SplayedDictionary< K, V > Class Template Reference

A splay tree based dictionary implementation that provides fast access to recently visited entries and offered enumeration based on the natural ordering or comparer defined ordering of dictionary entries. More...

Inheritance diagram for Apache.Qpid.Proton.Utilities.SplayedDictionary< K, V >:
Apache.Qpid.Proton.Utilities.LinkedSplayedDictionary< K, V >

Classes

class  SplayedEntry
 

Public Member Functions

 SplayedDictionary ()
 Create a new Splayed Dictionary instance that uses a default key comparer instance to provide relative ordering of keys within the mapping.
 
 SplayedDictionary (IComparer< K > comparer)
 Create a new Splayed Dictionary instance that uses the give key comparer instance to provide relative ordering of keys within the mapping.
 
 SplayedDictionary (IDictionary< K, V > source)
 Create a new Splayed Dictionary instance that uses the give key comparer instance to provide relative ordering of keys within the mapping.
 
void Add (K key, V value)
 
void Add (KeyValuePair< K, V > item)
 
void Add (object key, object value)
 
virtual void Clear ()
 
bool Contains (object key)
 
bool Contains (KeyValuePair< K, V > item)
 
bool ContainsValue (V value)
 
bool ContainsKey (K key)
 
virtual void CopyTo (KeyValuePair< K, V >[] array, int arrayIndex)
 
virtual void CopyTo (Array array, int arrayIndex)
 
void Remove (object key)
 
bool Remove (K key)
 
bool RemoveValue (V target)
 Removes the first entry from the dictionary that contains the specified value and returns true, if there is no entry with the given value this method returns false.
 
bool Remove (KeyValuePair< K, V > item)
 
bool TryGetValue (K key, [MaybeNullWhen(false)] out V value)
 
virtual IEnumerator< KeyValuePair< K, V > > GetEnumerator ()
 

Protected Member Functions

virtual void EntryAdded (SplayedEntry newEntry)
 
virtual void EntryDeleted (SplayedEntry deletedEntry)
 
void Delete (SplayedEntry node)
 

Protected Attributes

readonly RingQueue< SplayedEntryentryPool = new(64)
 Pooled entries used to prevent excessive allocations for rapid insert and removal operations.
 
SplayedEntry root
 Root of the tree which can change as entries are splayed up and down the tree.
 
int size
 Tracked tree size to prevent traversals for size operations.
 
int modCount
 Provides a means of tracking modification during enumeration errors.
 
ICollection< K > keySet
 Cached collection object that provides access to the dictionary keys.
 
ICollection< V > values
 Cached collection object that provides access to the dictionary values.
 

Properties

int Count [get]
 
bool IsReadOnly [get]
 
IComparer< K > Comparer [get]
 
bool IsFixedSize [get]
 
bool IsSynchronized [get]
 
object SyncRoot [get]
 
this[K key] [get, set]
 
object this[object key] [get, set]
 
virtual ICollection< K > Keys [get]
 
virtual ICollection< V > Values [get]
 

Detailed Description

A splay tree based dictionary implementation that provides fast access to recently visited entries and offered enumeration based on the natural ordering or comparer defined ordering of dictionary entries.

Template Parameters
TThe type contained in the Queue

Constructor & Destructor Documentation

◆ SplayedDictionary() [1/2]

Apache.Qpid.Proton.Utilities.SplayedDictionary< K, V >.SplayedDictionary ( IComparer< K >  comparer)
inline

Create a new Splayed Dictionary instance that uses the give key comparer instance to provide relative ordering of keys within the mapping.

Parameters
comparerThe IComparer instance to use to compare keys

◆ SplayedDictionary() [2/2]

Apache.Qpid.Proton.Utilities.SplayedDictionary< K, V >.SplayedDictionary ( IDictionary< K, V >  source)
inline

Create a new Splayed Dictionary instance that uses the give key comparer instance to provide relative ordering of keys within the mapping.

Parameters
comparerThe IComparer instance to use to compare keys

Member Function Documentation

◆ RemoveValue()

bool Apache.Qpid.Proton.Utilities.SplayedDictionary< K, V >.RemoveValue ( target)
inline

Removes the first entry from the dictionary that contains the specified value and returns true, if there is no entry with the given value this method returns false.

Parameters
targetThe value to search for in the entries
Returns
true if an entry was removed or false if no match found

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