A mapping from keys to values. A map is also called assiciative array. It is a mapping from a set of keys to a set of values. Each key in a map is unique. Each key is assigned a value. Keys and values may only be String or Integer constants. Elements inside a map are kept in a sorted order based on the key value. More...
#include <YCPMap.h>
Public Member Functions | |
void | add (const YCPValue &key, const YCPValue &value) |
YCPMap | functionalAdd (const YCPValue &key, const YCPValue &value) const |
virtual const YCPElementRep * | shallowCopy () const |
void | remove (const YCPValue &key) |
bool | isEmpty () const |
long | size () const |
bool | hasKey (const YCPValue &key) const |
YCPValue | value (const YCPValue &key) const |
YCPMapIterator | begin () const |
YCPMapIterator | end () const |
YCPOrder | compare (const YCPMap &v) const |
string | toString () const |
std::ostream & | toStream (std::ostream &str) const |
std::ostream & | toXml (std::ostream &str, int indent) const |
YCPValueType | valuetype () const |
Protected Types | |
typedef YCPValueYCPValueMap::iterator | iterator |
typedef YCPValueYCPValueMap::const_iterator | const_iterator |
typedef YCPValueYCPValueMap::value_type | value_type |
typedef YCPValueYCPValueMap::const_reference | const_reference |
typedef YCPValueYCPValueMap::key_compare | key_compare |
Protected Member Functions | |
YCPMapRep () | |
~YCPMapRep () | |
Private Attributes | |
YCPValueYCPValueMap | stl_map |
Friends | |
class | YCPMap |
A mapping from keys to values. A map is also called assiciative array. It is a mapping from a set of keys to a set of values. Each key in a map is unique. Each key is assigned a value. Keys and values may only be String or Integer constants. Elements inside a map are kept in a sorted order based on the key value.
typedef YCPValueYCPValueMap::const_iterator YCPMapRep::const_iterator [protected] |
typedef YCPValueYCPValueMap::const_reference YCPMapRep::const_reference [protected] |
typedef YCPValueYCPValueMap::iterator YCPMapRep::iterator [protected] |
typedef YCPValueYCPValueMap::key_compare YCPMapRep::key_compare [protected] |
typedef YCPValueYCPValueMap::value_type YCPMapRep::value_type [protected] |
YCPMapRep::YCPMapRep | ( | ) | [protected] |
Creates a new and empty mapping.
Referenced by shallowCopy().
YCPMapRep::~YCPMapRep | ( | ) | [inline, protected] |
Cleans up
Adds a new key/value pair. If the key is existent, the old entry will be overwritten with the new one.
References stl_map, and ycp2error.
Referenced by shallowCopy().
YCPMapIterator YCPMapRep::begin | ( | ) | const |
Returns a bidirectional iterator for the YCPMap that is positioned at the first value pair in the map.
References stl_map.
Referenced by compare(), functionalAdd(), shallowCopy(), toStream(), toString(), and toXml().
Compares two YCPMaps for equality, greaterness or smallerness. Comparison is done as follows: shorter < longer pairwise comparison for maps of equal length not being empty
v | value to compare against |
References YCPMap::begin(), begin(), YCPMap::end(), end(), YCPMap::size(), size(), YO_EQUAL, YO_GREATER, and YO_LESS.
YCPMapIterator YCPMapRep::end | ( | ) | const |
Returns a bidirectional iterator for the YCPMap that is positioned behind the last value pair in the map.
References stl_map.
Referenced by compare(), functionalAdd(), shallowCopy(), toStream(), toString(), toXml(), and value().
Is like add, but doesn't change this map. It creates a newly created map.
References YCPMap::add(), begin(), end(), toString(), y2debug, and ycp2error.
bool YCPMapRep::hasKey | ( | const YCPValue & | key | ) | const |
Returns true iff the map contains the key.
References stl_map.
bool YCPMapRep::isEmpty | ( | ) | const |
Returns true, iff this map is empty.
References stl_map.
void YCPMapRep::remove | ( | const YCPValue & | key | ) |
const YCPElementRep * YCPMapRep::shallowCopy | ( | ) | const [virtual] |
Creates a copy of this list, i.e. creates a new list with the same elements as this one. The elements themselves are not copied, but only cloned!
Reimplemented from YCPElementRep.
References add(), begin(), end(), and YCPMapRep().
long YCPMapRep::size | ( | ) | const |
std::ostream & YCPMapRep::toStream | ( | std::ostream & | str | ) | const [virtual] |
Output value as bytecode to stream
Implements YCPElementRep.
References begin(), end(), stl_map, Bytecode::writeInt32(), and Bytecode::writeValue().
string YCPMapRep::toString | ( | void | ) | const [virtual] |
Returns an ASCII representation of the map. Maps are denoted by a comma separated list of pairs of the form key : value enclosed in $[ ... ]
Implements YCPElementRep.
References begin(), and end().
Referenced by functionalAdd().
std::ostream & YCPMapRep::toXml | ( | std::ostream & | str, | |
int | indent | |||
) | const [virtual] |
Implements YCPValueRep.
YCPValueType YCPMapRep::valuetype | ( | ) | const [virtual] |
friend class YCPMap [friend] |
YCPValueYCPValueMap YCPMapRep::stl_map [private] |