LSPMap Class

class LSPMap

An LSPMap is a data structure mapping keys to values. A map is both an associative table and an array. Setting a value to an existing key will overwrite any value previously set for that key.

When used as an array-like structure, adding a new unkeyed element to an LSPMap with addValue() automatically assigns an integer key to the element equal to the largest integer key already present plus one, or zero if no integer key exists.

Most of the functions below exist in multiple versions: Values and keys can be manipulated through their native type (like int, double, std::string, LSPMap, LSPFunction, …) or manipulated with an LSPValue which is a container that can hold any type of value. Using the native type is more convenient and results in less overhead most of the time. LSPValue should only be used when you don’t know the type of the manipulated value.

The iterators returned by the method iterator() follow the fail-fast convention: if the map is structurally modified after the creation of an iterator (by using the methods add, set, unset or clear), the iterator will throw an exception. In other words, you can’t modify a map while you are iterating over it.

Since:

10.0

Summary

Functions

count

Returns the number of elements in the map.

clear

Erases all elements from the map.

addValue

Adds the given value to the map.

addInt

Adds the given integer value to the map.

addDouble

Adds the given double value to the map.

addBool

Adds the given boolean value to the map.

addExpression

Adds the given LSExpression to the map.

addString

Adds the given string to the map.

addMap

Adds the given LSPMap to the map.

addFunction

Adds the given LSPFunction to the map.

addModule

Adds the given LSPModule to the map.

getValue

Gets the LSPValue associated with the given key.

getValue

Returns the value associated with the given key as an LSPValue.

getValue

Gets the LSPValue associated with the given key.

getInt

Gets the integer value associated with the given key.

getInt

Returns the integer value associated with the given key.

getInt

Returns the integer value associated with the given key.

getDouble

Gets the double value associated with the given key.

getDouble

Returns the double value associated with the given key.

getDouble

Returns the double value associated with the given key.

getBool

Gets the boolean value associated with the given key.

getBool

Returns the boolean value associated with the given key.

getBool

Returns the boolean value associated with the given key.

getString

Gets the string associated with the given key.

getString

Returns the string associated with the given key.

getString

Returns the string associated with the given key.

getExpression

Gets the LSExpression associated with the given key.

getExpression

Returns the LSExpression associated with the given key.

getExpression

Gets the LSExpression associated with the given key.

getMap

Gets the LSPMap associated with the given key.

getMap

Returns the LSPMap associated with the given key.

getMap

Gets the LSPMap associated with the given key.

getFunction

Gets the LSPFunction associated with the given key.

getFunction

Returns the LSPFunction associated with the given key.

getFunction

Gets the LSPFunction associated with the given key.

getModule

Gets the LSPModule associated with the given key.

getModule

Returns the LSPModule associated with the given key.

getModule

Gets the LSPModule associated with the given key.

setValue

Associates the LSPValue with the given key.

setValue

Associates the LSPValue with the given key in the map.

setValue

Associates an LSPValue with the given key.

setInt

Associates the integer value with the given key in the map.

setInt

Associates the integer value with the given key in the map.

setInt

Associates an integer value with the given key.

setDouble

Associates the double value with the given key in the map.

setDouble

Associates the double value with the given key in the map.

setDouble

Associates a double value with the given key.

setBool

Associates the boolean value with the given key in the map.

setBool

Associates the boolean value with the given key in the map.

setBool

Associates a boolean value with the given key.

setString

Associates the string with the given key in the map.

setString

Associates the string with the given key in the map.

setString

Associates a string with the given key.

setExpression

Associates the LSExpression with the given key in the map.

setExpression

Associates the LSExpression with the given key in the map.

setExpression

Associates an LSExpression with the given key.

setMap

Associates the LSPMap with the given key in the map.

setMap

Associates the LSPMap with the given key in the map.

setMap

Associates an LSPMap with the given key.

setFunction

Associates the LSPFunction with the given key in the map.

setFunction

Associates the LSPFunction with the given key in the map.

setFunction

Associates an LSPFunction with the given key.

setModule

Associates the LSPModule with the given key in the map.

setModule

Associates the LSPModule with the given key in the map.

setModule

Associates an LSPModule with the given key.

unset

Unsets the given key in the map if present.

unset

Unsets the given key in the map if present.

unset

Unsets the given key in the map if present.

isDefined

Returns true if the given key is defined in the map.

isDefined

Returns true if the given key is defined in the map.

isDefined

Returns true if the given key is defined in the map.

iterator

Returns a new iterator to the elements of this map.

asValue

Gets the map as an LSPValue.

Overloaded operators

LSPValue

Returns the map as an LSPValue.

Functions

lsint LSPMap::count() const

Returns the number of elements in the map.

void LSPMap::clear() const

Erases all elements from the map. After this call, count() returns zero.

void LSPMap::addValue(const LSPValue &value)

Adds the given value to the map. The associated key corresponds to the largest integer key present in the map plus one, or zero if no integer key exists.

Parameters:

value – Value to add in the map.

void LSPMap::addInt(lsint value)

Adds the given integer value to the map. The associated key corresponds to the largest integer key present in the map plus one, or zero if no integer key exists.

Parameters:

value – Integer value to add in the map.

void LSPMap::addDouble(lsdouble value)

Adds the given double value to the map. The associated key corresponds to the largest integer key present in the map plus one, or zero if no integer key exists.

Parameters:

value – Double value to add in the map.

void LSPMap::addBool(bool value)

Adds the given boolean value to the map. The associated key corresponds to the largest integer key present in the map plus one, or zero if no integer key exists.

Parameters:

value – Boolean value to add in the map.

void LSPMap::addExpression(const LSExpression &expr)

Adds the given LSExpression to the map. The associated key corresponds to the largest integer key present in the map plus one, or zero if no integer key exists.

Parameters:

expr – LSExpression to add in the map.

void LSPMap::addString(const std::string &str)

Adds the given string to the map. The associated key corresponds to the largest integer key present in the map plus one, or zero if no integer key exists.

Parameters:

str – String to add in the map.

void LSPMap::addMap(const LSPMap &map)

Adds the given LSPMap to the map. The associated key corresponds to the largest integer key present in the map plus one, or zero if no integer key exists.

Parameters:

map – LSPMap to add in the map.

void LSPMap::addFunction(const LSPFunction &func)

Adds the given LSPFunction to the map. The associated key corresponds to the largest integer key present in the map plus one, or zero if no integer key exists.

Parameters:

func – LSPFunction to add in the map.

void LSPMap::addModule(const LSPModule &module)

Adds the given LSPModule to the map. The associated key corresponds to the largest integer key present in the map plus one, or zero if no integer key exists.

Parameters:

module – LSPModule to add in the map.

LSPValue LSPMap::getValue(lsint key) const

Gets the LSPValue associated with the given key. If the key is not present in the map, an LSPValue representing nil is returned.

Parameters:

key – Integer key.

Returns:

LSPValue associated with the key.

LSPValue LSPMap::getValue(const std::string &key) const

Returns the value associated with the given key as an LSPValue. If no value is associated with the key, an LSPValue representing nil is returned.

Parameters:

key – String key.

Returns:

LSPValue associated with the key.

LSPValue LSPMap::getValue(const LSPValue &key) const

Gets the LSPValue associated with the given key. The key must not be nil. If the key is not present in the map, an LSPValue representing nil is returned.

Parameters:

key – LSPValue key.

Returns:

LSPValue associated with the key.

lsint LSPMap::getInt(lsint key) const

Gets the integer value associated with the given key. The value must exist and must be a integer.

Parameters:

key – Integer key.

Returns:

Integer value associated with the key.

lsint LSPMap::getInt(const std::string &key) const

Returns the integer value associated with the given key. The value must exist and must be an integer.

Parameters:

key – String key.

Returns:

Integer value associated with the key.

lsint LSPMap::getInt(const LSPValue &key) const

Returns the integer value associated with the given key. The key must not be nil. The value must exist and must be an integer.

Parameters:

key – LSPValue key.

Returns:

Integer value associated with the key.

lsdouble LSPMap::getDouble(lsint key) const

Gets the double value associated with the given key. The value must exist and must be a double.

Parameters:

key – Integer key.

Returns:

Double value associated with the key.

lsdouble LSPMap::getDouble(const std::string &key) const

Returns the double value associated with the given key. The value must exist and must be a double.

Parameters:

key – String key.

Returns:

Double value associated with the key.

lsdouble LSPMap::getDouble(const LSPValue &key) const

Returns the double value associated with the given key. The key must not be nil. The value must exist and must be a double.

Parameters:

key – LSPValue key.

Returns:

Double value associated with the key.

bool LSPMap::getBool(lsint key) const

Gets the boolean value associated with the given key. The value must exist and must be a boolean.

Parameters:

key – Integer key.

Returns:

Boolean value associated with the key.

bool LSPMap::getBool(const std::string &key) const

Returns the boolean value associated with the given key. The value must exist and must be a boolean.

Parameters:

key – String key.

Returns:

Boolean value associated with the key.

bool LSPMap::getBool(const LSPValue &key) const

Returns the boolean value associated with the given key. The key must not be nil. The value must exist and must be a boolean.

Parameters:

key – LSPValue key.

Returns:

Boolean value associated with the key.

std::string LSPMap::getString(lsint key) const

Gets the string associated with the given key. The value must exist and must be a string.

Parameters:

key – Integer key.

Returns:

String associated with the key.

std::string LSPMap::getString(const std::string &key) const

Returns the string associated with the given key. The value must exist and must be a string.

Parameters:

key – String key.

Returns:

String value associated with the key.

std::string LSPMap::getString(const LSPValue &key) const

Returns the string associated with the given key. The key must not be nil. The value must exist and must be a string.

Parameters:

key – LSPValue key.

Returns:

String associated with the key.

LSExpression LSPMap::getExpression(lsint key) const

Gets the LSExpression associated with the given key. The value must exist and must be an LSExpression.

Parameters:

key – Integer key.

Returns:

LSExpression associated with the key.

LSExpression LSPMap::getExpression(const std::string &key) const

Returns the LSExpression associated with the given key. The value must exist and must be an LSExpression.

Parameters:

key – String key.

Returns:

LSExpression associated with the key.

LSExpression LSPMap::getExpression(const LSPValue &key) const

Gets the LSExpression associated with the given key. The key must not be nil. The value must exist and must be an LSExpression.

Parameters:

key – LSPValue key.

Returns:

LSExpression associated with the key.

LSPMap LSPMap::getMap(lsint key) const

Gets the LSPMap associated with the given key. The value must exist and must be an LSPMap.

Parameters:

key – Integer key.

Returns:

LSPMap associated with the key.

LSPMap LSPMap::getMap(const std::string &key) const

Returns the LSPMap associated with the given key. The value must exist and must be an LSPMap.

Parameters:

key – String key.

Returns:

LSPMap associated with the key.

LSPMap LSPMap::getMap(const LSPValue &key) const

Gets the LSPMap associated with the given key. The key must not be nil. The value must exist and must be an LSPMap.

Parameters:

key – LSPValue key.

Returns:

LSPMap associated with the key.

LSPFunction LSPMap::getFunction(lsint key) const

Gets the LSPFunction associated with the given key. The value must exist and must be an LSPFunction.

Parameters:

key – Integer key.

Returns:

LSPFunction associated with the key.

LSPFunction LSPMap::getFunction(const std::string &key) const

Returns the LSPFunction associated with the given key. The value must must exist and must be an LSPFunction.

Parameters:

key – String key.

Returns:

LSPFunction associated with the key.

LSPFunction LSPMap::getFunction(const LSPValue &key) const

Gets the LSPFunction associated with the given key. The key must not be nil. The value must exist and must be an LSPFunction.

Parameters:

key – LSPValue key.

Returns:

LSPFunction associated with the key.

LSPModule LSPMap::getModule(lsint key) const

Gets the LSPModule associated with the given key. The value must exist and must be an LSPModule.

Parameters:

key – Integer key.

Returns:

LSPModule associated with the key.

LSPModule LSPMap::getModule(const std::string &key) const

Returns the LSPModule associated with the given key. The value must exist and must be an LSPModule.

LSPModule LSPMap::getModule(const LSPValue &key) const

Gets the LSPModule associated with the given key. The key must not be nil. The value must exist and must be an LSPModule.

Parameters:

key – LSPValue key.

Returns:

LSPModule associated with the key.

void LSPMap::setValue(lsint key, const LSPValue &value)

Associates the LSPValue with the given key. If the value is nil, this has the same effect as LSPMap::unset(). If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – Integer key.

  • value – LSPValue to set.

void LSPMap::setValue(const std::string &key, const LSPValue &value)

Associates the LSPValue with the given key in the map. If the value is nil, this has the same effect as LSPMap::unset(). If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – String key.

  • value – LSPValue to set.

void LSPMap::setValue(const LSPValue &key, const LSPValue &value)

Associates an LSPValue with the given key. The key must not be nil. If the value is nil, this has the same effect as LSPMap::unset(). If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – LSPValue key.

  • value – LSPValue value.

void LSPMap::setInt(lsint key, lsint value)

Associates the integer value with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – Integer key.

  • value – Integer value to set.

void LSPMap::setInt(const std::string &key, lsint value)

Associates the integer value with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – String key.

  • value – Integer value to set.

void LSPMap::setInt(const LSPValue &key, lsint value)

Associates an integer value with the given key. The key must not be nil. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – LSPValue key.

  • value – Integer value.

void LSPMap::setDouble(lsint key, lsdouble value)

Associates the double value with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – Integer key.

  • value – Double value to set.

void LSPMap::setDouble(const std::string &key, lsdouble value)

Associates the double value with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – String key.

  • value – Double value to set.

void LSPMap::setDouble(const LSPValue &key, lsdouble value)

Associates a double value with the given key. The key must not be nil. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – LSPValue key.

  • value – Double value.

void LSPMap::setBool(lsint key, bool value)

Associates the boolean value with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – Integer key.

  • value – Boolean value to set.

void LSPMap::setBool(const std::string &key, bool value)

Associates the boolean value with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – String key.

  • value – Boolean value to set.

void LSPMap::setBool(const LSPValue &key, bool value)

Associates a boolean value with the given key. The key must not be nil. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – LSPValue key.

  • value – Boolean value.

void LSPMap::setString(lsint key, const std::string &value)

Associates the string with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – Integer key.

  • value – String to set.

void LSPMap::setString(const std::string &key, const std::string &value)

Associates the string with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – String key.

  • value – String value to set.

void LSPMap::setString(const LSPValue &key, const std::string &value)

Associates a string with the given key. The key must not be nil. If the map already contained an association for the key, the previous value s replaced.

Parameters:
  • key – LSPValue key.

  • value – String value.

void LSPMap::setExpression(lsint key, const LSExpression &expr)

Associates the LSExpression with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – Integer key.

  • expr – LSExpression to set.

void LSPMap::setExpression(const std::string &key, const LSExpression &expr)

Associates the LSExpression with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – String key.

  • expr – LSExpression to set.

void LSPMap::setExpression(const LSPValue &key, const LSExpression &expr)

Associates an LSExpression with the given key. The key must not be nil. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – LSPValue key.

  • expr – LSExpression value.

void LSPMap::setMap(lsint key, const LSPMap &map)

Associates the LSPMap with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – Integer key.

  • map – LSPMap to set.

void LSPMap::setMap(const std::string &key, const LSPMap &map)

Associates the LSPMap with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – String key.

  • map – LSPMap to set.

void LSPMap::setMap(const LSPValue &key, const LSPMap &map)

Associates an LSPMap with the given key. The key must not be nil. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – LSPValue key.

  • map – LSPMap value.

void LSPMap::setFunction(lsint key, const LSPFunction &func)

Associates the LSPFunction with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – Integer key.

  • func – LSPFunction to set.

void LSPMap::setFunction(const std::string &key, const LSPFunction &func)

Associates the LSPFunction with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – String key.

  • func – LSPFunction to set.

void LSPMap::setFunction(const LSPValue &key, const LSPFunction &func)

Associates an LSPFunction with the given key. The key must not be nil. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – LSPValue key.

  • func – LSPFunction value.

void LSPMap::setModule(lsint key, const LSPModule &module)

Associates the LSPModule with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – Integer key.

  • module – LSPModule to set.

void LSPMap::setModule(const std::string &key, const LSPModule &module)

Associates the LSPModule with the given key in the map. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – String key.

  • module – LSPModule to set.

void LSPMap::setModule(const LSPValue &key, const LSPModule &module)

Associates an LSPModule with the given key. The key must not be nil. If the map already contained an association for the key, the previous value is replaced.

Parameters:
  • key – LSPValue key.

  • module – LSPModule value.

void LSPMap::unset(lsint key)

Unsets the given key in the map if present. If the key doesn’t exist in the map, does nothing.

Parameters:

key – Integer key.

void LSPMap::unset(const std::string &key)

Unsets the given key in the map if present. If the key doesn’t exist in the map, does nothing.

Parameters:

key – String key.

void LSPMap::unset(const LSPValue &key)

Unsets the given key in the map if present. If the key doesn’t exist in the map, does nothing.

Parameters:

key – LSPValue key.

bool LSPMap::isDefined(lsint key) const

Returns true if the given key is defined in the map.

Parameters:

key – Integer key.

bool LSPMap::isDefined(const std::string &key) const

Returns true if the given key is defined in the map.

Parameters:

key – String key.

bool LSPMap::isDefined(const LSPValue &key) const

Returns true if the given key is defined in the map.

Parameters:

key – LSPValue key.

LSPMapIterator LSPMap::iterator() const

Returns a new iterator to the elements of this map.

LSPValue LSPMap::asValue() const

Gets the map as an LSPValue.

Returns:

The map as LSPValue.

Overloaded operators

explicit operator LSPMap::LSPValue() const

Returns the map as an LSPValue.

See:

LSPValue