|
| Dictionary (void) |
|
virtual | ~Dictionary (void) |
|
| Dictionary (const Dictionary< EKeyType, EValueType > &toCopy) |
|
virtual Dictionary< EKeyType, EValueType > & | operator= (const DictionaryBase &toCopy) |
|
virtual Dictionary< EKeyType, EValueType > & | operator= (const Dictionary< EKeyType, EValueType > &toCopy) |
|
virtual bool | operator== (const DictionaryBase &toCompare) const |
|
virtual bool | operator!= (const DictionaryBase &toCompare) const |
|
const EValueType & | operator[] (unsigned int index) const |
|
EValueType & | operator[] (unsigned int index) |
|
virtual const nByte * | getKeyTypes (void) const |
|
virtual const nByte * | getValueTypes (void) const |
|
virtual const unsigned int * | getValueDimensions (void) const |
|
virtual nByte | getValueCustomType (void) const |
|
virtual void | put (const DictionaryBase &src) |
|
void | put (const EKeyType &key, const EValueType &val) |
|
void | put (const EKeyType &key) |
|
void | put (const EKeyType &key, const EValueType pVal, int size) |
|
void | put (const EKeyType &key, const EValueType pVal, const int *sizes) |
|
void | remove (const EKeyType &key) |
|
bool | contains (const EKeyType &key) const |
|
virtual JString | typeToString (void) const |
|
virtual JString & | toString (JString &retStr, bool withTypes=false) const |
|
const EValueType * | getValue (const EKeyType &key) const |
|
EValueType * | getValue (const EKeyType &key) |
|
JVector< EKeyType > | getKeys (void) const |
|
virtual JString | typeToString (void) const |
|
virtual JString & | toString (JString &retStr, bool withTypes=false) const=0 |
|
JString | toString (bool withTypes=false) const |
|
virtual | ~DictionaryBase (void) |
|
| DictionaryBase (const DictionaryBase &toCopy) |
|
template<typename FKeyType > |
const int * | getValueSizes (const FKeyType &key) const |
|
JString | typeToString (void) const |
|
virtual JString & | toString (JString &retStr, bool withTypes=false) const=0 |
|
JString | toString (bool withTypes=false) const |
|
virtual | ~GenericAssociativeContainerBase (void)=0 |
|
virtual void | removeAt (unsigned int index) |
|
virtual void | removeAllElements (void) |
|
virtual JString & | toString (JString &retStr, bool withTypes=false) const =0 |
|
JString | toString (bool withTypes=false) const |
|
virtual const Hashtable & | getHashtable (void) const |
|
virtual unsigned int | getSize (void) const |
|
virtual | ~Base (void)=0 |
|
virtual | ~LoggingBase (void)=0 |
|
virtual | ~ToString (void) |
|
JString | toString (bool withTypes=false) const |
|
template<typename EKeyType, typename EValueType>
class ExitGames::Common::Dictionary< EKeyType, EValueType >
The Dictionary class template together with the Hashtable class is one of the two main container classes for objects to be transmitted over Photon when using the C++ Client.
This class implements the well-known concept of a container structure storing an arbitrary number of key/value-pairs.
In contrast to a Hashtable, the types of both the keys and also the values in a Dictionary have to be the same for all entries. This takes flexibility, but it also improves type safety and means, that the type infos only have to be stored twice for the whole Dictionary (once for the key and once for the value), while in a Hashtable they have to be stored twice per entry. Therefor with Dictionaries transferring the same amount of key-value pairs will cause less traffic than with Hashtables.
Please have a look at the Table of Datatypes for a list of types, that are supported as keys and as values.
Please refer to the documentation for put() and getValue() to see how to store and access data in a Dictionary.
- See also
- put(), getValue(), KeyObject, ValueObject, Hashtable, DictionaryBase
operator==.
- Returns
- true, if both operands are equal, false otherwise.
Two instances are considered equal if they each hold the same number of entries and, for a given key, the corresponding values equal each other.
Two values are considered equal to each other, if instances of class OT, that are holding them as payloads, equal each other.
- See also
- OT::operator==()
Reimplemented from GenericAssociativeContainerBase< DictionaryBase, Hashtable, Object >.
const nByte * getKeyTypes |
( |
void |
| ) |
const |
|
virtual |
- Returns
- an array, holding the type code for the key type of the Dictionary and type codes for the key types of potential nested Dictionaries.
Only index 0 of the returned array is guaranteed to be valid. The existence of elements at other indices depends on the value of the element in the array returned by getValueTypes() at the previous index in the following way: Only when getValueTypes()[i] == TypeCode::DICTIONARY, then getKeyTypes()[i+1] will be valid.
Type information for nested Dictionaries will be stored like in the following example: Dictionary<int, Dictionary<short, float**>*> This is a Dictionary, with the key type being int and the value type being a 1D array of type Dictionary<short, float**>, so that all values are Dictionaries, which keys are shorts and which values are 2D arrays of float. This function's return value in this example will hold the values TypeCode::INTEGER at index 0 and TypeCode::SHORT at index 1.
The codes returned by this function match the ones, that are stored in member variable "typename" of class template Helpers::ConfirmAllowedKey's specializations. Only the types, for which specializations of that template exist, are valid Dictionary keys.
Reimplemented from DictionaryBase.
const nByte * getValueTypes |
( |
void |
| ) |
const |
|
virtual |
- Returns
- an array, holding the type code for the value type of the Dictionary and type codes for the value types of potential nested Dictionaries.
Only index 0 of the returned array is guaranteed to be valid. The existence of elements at other indices depends on the value of the element at the previous index in the following way: Only when getValueTypes()[i] == TypeCode::DICTIONARY, then getValueTypes()[i+1] will be valid.
Type information for nested Dictionaries will be stored like in the following example: Dictionary<int, Dictionary<short, float**>*> This is a Dictionary, with the key type being int and the value type being a 1D array of type Dictionary<short, float**>, so that all values are Dictionaries, which keys are shorts and which values are 2D arrays of float. This function's return value in this example will hold the values TypeCode::DICTIONARY at index 0 and TypeCode::FLOAT at index 1.
The codes returned by this function match the ones, that are stored in member variable "typename" of class template Helpers::ConfirmAllowed's specializations. Only the types, for which specializations of that template exist, are valid Dictionary values.
Reimplemented from DictionaryBase.
const unsigned int * getValueDimensions |
( |
void |
| ) |
const |
|
virtual |
- Returns
- an array, holding the amount of array dimensions for the value type of the Dictionary and for the value types of potential nested Dictionaries.
Only index 0 of the returned array is guaranteed to be valid. The existence of elements at other indices depends on the value of the element in the array returned by getValueTypes() at the previous index in the following way: Only when getValueTypes()[i] == TypeCode::DICTIONARY, then getValueDimensions()[i+1] will be valid.
Type information for nested Dictionaries will be stored like in the following example: Dictionary<int, Dictionary<short, float**>*> This is a Dictionary, with the key type being int and the value type being a 1D array of type Dictionary<short, float**>, so that all array-elements are Dictionaries, which keys are shorts and which values are 2D arrays of float. This function's return value in this example will hold the value 1 (for 1D array) at index 0 and 2 (for 2D) at index 1. If a value type is no array, then this functions return value will contain 0 at the corresponding index.
Reimplemented from DictionaryBase.