Photon Fusion 1.1.11

Public Member Functions | Public Attributes | Static Public Attributes | Properties | List of all members
NetworkDictionary< K, V > Struct Template Reference

Fusion type for networking Dictionaries. Maximum capacity is fixed, and is set with the CapacityAttribute.

More...

Inherits IEnumerable< KeyValuePair< K, V >>.

Public Member Functions

bool Add (K key, V value)
 Adds a new key value pair to the Dictionary. If the key already exists, will return false. More...
 
void Clear ()
 Remove all entries from the Dictionary, and clear backing memory. More...
 
void ClrEntry (int entry)
 
bool ContainsKey (K key)
 Returns true if the Dictionary contains an entry for the given key. More...
 
bool ContainsValue (V value, IEqualityComparer< V > equalityComparer=null)
 Returns true if the Dictionary contains an entry value which compares as equal to given value. More...
 
int Find (K key)
 
Get (K key)
 Returns the value for the given key. Will throw an error if the key is not found. More...
 
uint GetBucketFromHashCode (int hash)
 
Enumerator GetEnumerator ()
 
IEnumerator< KeyValuePair< K, V > > IEnumerable< KeyValuePair< K, V > >. GetEnumerator ()
 
IEnumerator IEnumerable. GetEnumerator ()
 
GetKey (int entry)
 
int GetNxt (int entry)
 
GetVal (int entry)
 
int Insert (K key, V val)
 
 NetworkDictionary (int *data, int capacity, IElementReaderWriter< K > keyReaderWriter, IElementReaderWriter< V > valReaderWriter)
 
NetworkDictionary< K, V > Remap (void *dictionary)
 
bool Remove (K key)
 Remove entry from Dictionary. More...
 
bool Remove (K key, out V value)
 Removes entry from Dictionary. If successful (key existed), returns true and the value of removed item. More...
 
Set (K key, V value)
 Sets the value for the given key. Will add a new key if the key does not already exist. More...
 
void SetKey (int entry, K key)
 
void SetNxt (int entry, int next)
 
void SetVal (int entry, V val)
 
bool TryGet (K key, out V value)
 Attempts to get the value for a given key. If found, returns true. More...
 

Public Attributes

int _bucketsOffset
 
int _capacity
 
int * _data
 
int _entriesOffset
 
int _entryStride
 
EqualityComparer< K > _equalityComparer
 
int _keyOffset
 
IElementReaderWriter< K > _keyReaderWriter
 
int _nxtOffset
 
int _valOffset
 
IElementReaderWriter< V > _valReaderWriter
 

Static Public Attributes

const int FREE_COUNT_OFFSET = 1
 
const int FREE_OFFSET = 0
 
const int INVALID_ENTRY = 0
 
const int META_WORD_COUNT = 3
 
const int USED_COUNT_OFFSET = 2
 

Properties

int _free [get, set]
 
int _freeCount [get, set]
 
int _usedCount [get, set]
 
int Capacity [get]
 The maximum number of entries this dictionary may contain. More...
 
int Count [get]
 Current number of key/value entries in the Dictionary. More...
 
this[K key] [get, set]
 Key indexer. Gets/Sets value for specified key. More...
 

Detailed Description

Fusion type for networking Dictionaries. Maximum capacity is fixed, and is set with the CapacityAttribute.

Typical Usage: [Networked, Capacity(10)]
NetworkDictionary<int, float> syncedDict => default;

Usage for modifying data: var dict = syncedDict; dict.Add(5, 123); dict[5] = 456; dict.Remove(5);

Template Parameters
KKey can be a primitive, or an INetworkStruct.
VValue can be a primitive, or an INetworkStruct.

Member Function Documentation

◆ Add()

bool Add ( key,
value 
)

Adds a new key value pair to the Dictionary. If the key already exists, will return false.

◆ Clear()

void Clear ( )

Remove all entries from the Dictionary, and clear backing memory.

◆ ContainsKey()

bool ContainsKey ( key)

Returns true if the Dictionary contains an entry for the given key.

◆ ContainsValue()

bool ContainsValue ( value,
IEqualityComparer< V >  equalityComparer = null 
)

Returns true if the Dictionary contains an entry value which compares as equal to given value.

Parameters
valueThe value to compare against.
equalityComparerSpecify custom IEqualityComparer to be used for compare.

◆ Get()

V Get ( key)

Returns the value for the given key. Will throw an error if the key is not found.

◆ Remove() [1/2]

bool Remove ( key)

Remove entry from Dictionary.

Parameters
key
Returns
Returns true if key was found.

◆ Remove() [2/2]

bool Remove ( key,
out V  value 
)

Removes entry from Dictionary. If successful (key existed), returns true and the value of removed item.

Parameters
keyThe key to remove.
valueReturns value of removed item. Returns default value if key did not exist.
Returns
Returns true if key was found.

◆ Set()

V Set ( key,
value 
)

Sets the value for the given key. Will add a new key if the key does not already exist.

◆ TryGet()

bool TryGet ( key,
out V  value 
)

Attempts to get the value for a given key. If found, returns true.

Parameters
keyThe key to remove.
valueReturns value of removed item. Returns default value if key did not exist.
Returns
Returns true if key was found.

Property Documentation

◆ Capacity

int Capacity
get

The maximum number of entries this dictionary may contain.

◆ Count

int Count
get

Current number of key/value entries in the Dictionary.

◆ this[K key]

V this[K key]
getset

Key indexer. Gets/Sets value for specified key.