Photon Fusion 1.1.2

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

 NetworkDictionary (int *data, int capacity, IElementReaderWriter< K > keyReaderWriter, IElementReaderWriter< V > valReaderWriter)
 
NetworkDictionary< K, V > Remap (void *dictionary)
 
void Clear ()
 Remove all entries from the Dictionary, and clear backing memory. More...
 
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...
 
Get (K key)
 Returns the value for the given key. Will throw an error if the key is not found. 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...
 
bool Add (K key, V value)
 Adds a new key value pair to the Dictionary. If the key already exists, will return false. More...
 
bool TryGet (K key, out V value)
 Attempts to get the value for a given key. If found, returns true. More...
 
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...
 
int Insert (K key, V val)
 
int Find (K key)
 
uint GetBucketFromHashCode (int hash)
 
void ClrEntry (int entry)
 
GetKey (int entry)
 
void SetKey (int entry, K key)
 
GetVal (int entry)
 
void SetVal (int entry, V val)
 
int GetNxt (int entry)
 
void SetNxt (int entry, int next)
 
Enumerator GetEnumerator ()
 
IEnumerator< KeyValuePair< K, V > > IEnumerable< KeyValuePair< K, V > >. GetEnumerator ()
 
IEnumerator IEnumerable. GetEnumerator ()
 

Public Attributes

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

Static Public Attributes

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

Properties

int _free [get, set]
 
int _freeCount [get, set]
 
int _usedCount [get, set]
 
int Count [get]
 Current number of key/value entries in the Dictionary. More...
 
int Capacity [get]
 The maximum number of entries this dictionary may contain. 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.