Apama
10.15.3.4
|
A map class which implements many of the functions on std::map. More...
#include <sag_connectivity_cpp.hpp>
Classes | |
struct | _iterator |
Forward/reverse and const/non-const iterators are implemented using this class. More... | |
Public Types | |
typedef _iterator< data_t, sag_underlying_map_table_entry_t *, pair< data_t > > | iterator |
The type of iterators on mutable maps. More... | |
typedef _iterator< const data_t, sag_underlying_map_table_entry_t const *, const pair< const data_t > > | const_iterator |
The type of iterators on const maps. More... | |
typedef pair< data_t > | element |
The type of an element in a mutable map. More... | |
typedef pair< const data_t > | const_element |
The type of an element in a const map. More... | |
typedef std::pair< data_t, data_t > | insertion_t |
The type of an element to be inserted into a map. More... | |
Public Member Functions | |
map_t () | |
Construct an empty map. More... | |
map_t (size_t n, const char *name=nullptr) | |
Construct a map with (at least) capacity for n items and optional name. More... | |
map_t (const char *name) | |
Construct an empty map with a name. More... | |
~map_t () | |
Free the underlying map contents. More... | |
map_t & | operator= (map_t &&other) |
Move assignment. More... | |
map_t (map_t &&other) | |
Move constructor. More... | |
map_t (std::initializer_list< std::pair< data_t, data_t >> l) | |
Initializer list construction, for example map_t{ std::make_pair(data_t{"key1"},data_t{"val1"}), std::make_pair(data_t{"key2"},data_t{"val2"}) } More... | |
void | swap (map_t &&other) |
Swap the contents of this map and other. More... | |
void | swapName (map_t &&other) |
Swap the name of this map and other. More... | |
map_t | copy () const |
Return a deep copy of this map. More... | |
void | setName (const char *name) |
Set the optional name of this map. More... | |
const char * | getName () const |
Get the optional name of this map. More... | |
bool | operator== (const map_t &other) const |
Returns true if this map deep-equals other. More... | |
bool | operator!= (const map_t &other) const |
Returns false if this map deep-equals other. More... | |
iterator | begin () |
Forward iterator begin. More... | |
iterator | end () |
Forward iterator end. More... | |
const_iterator | begin () const |
Forward const_iterator begin. More... | |
const_iterator | end () const |
Forward const_iterator end. More... | |
const_iterator | cbegin () const |
Forward const_iterator begin. More... | |
const_iterator | cend () const |
Forward const_iterator end. More... | |
size_t | size () const |
Returns the number of key/value pairs in the map. More... | |
bool | empty () const |
Returns true if the map is empty (size() == 0) More... | |
data_t & | operator[] (data_t &&k) |
Return a reference to the item with the given key. More... | |
data_t & | operator[] (const data_t &k) |
Return a reference to the item with the given key. More... | |
const data_t & | operator[] (const data_t &k) const |
Return a reference to the item with the given key. More... | |
iterator | find (const data_t &k) |
Searches the map for an item with the given key and returns an iterator to that position in the map. More... | |
const_iterator | find (const data_t &k) const |
Searches the map for an item with the given key and returns an iterator to that position in the map. More... | |
std::pair< iterator, bool > | insert (insertion_t &&v) |
Insert a new key/value pair into the map. More... | |
std::pair< iterator, bool > | insert (data_t &&k, data_t &&v) |
Insert a new key/value pair into the map. More... | |
size_t | erase (const data_t &k) |
Remove the item with the specified key. More... | |
void | erase (iterator it) |
Erase the item pointed to by this iterator. More... | |
void | clear () |
Empty the map, clean the name and free the underlying data. More... | |
void | moveAll (const std::function< void(data_t &&, data_t &&)> &fn) |
Move all the elements of the map into the given functor and then free and empty the map. More... | |
A map class which implements many of the functions on std::map.
This is an unordered map that can be named.
We don't guarantee exact method-for-method compatibility with any of the std types.
This class gives access methods to a map from data_t to data_t.
This is moveable, but not implicitly copyable. If you want to copy it use the .copy() method. If you want to move it use std::move().
No underlying implementation of the map is guaranteed. Modifying the contents will invalidate any iterators you have and any references that you have to the underlying structure.
typedef pair<const data_t> com::softwareag::connectivity::map_t::const_element |
The type of an element in a const map.
typedef _iterator<const data_t, sag_underlying_map_table_entry_t const *, const pair<const data_t> > com::softwareag::connectivity::map_t::const_iterator |
The type of iterators on const maps.
typedef pair<data_t> com::softwareag::connectivity::map_t::element |
The type of an element in a mutable map.
typedef std::pair<data_t, data_t> com::softwareag::connectivity::map_t::insertion_t |
The type of an element to be inserted into a map.
typedef _iterator<data_t, sag_underlying_map_table_entry_t *, pair<data_t> > com::softwareag::connectivity::map_t::iterator |
The type of iterators on mutable maps.
|
inline |
Construct an empty map.
|
explicit |
Construct a map with (at least) capacity for n items and optional name.
|
inlineexplicit |
Construct an empty map with a name.
|
inline |
Free the underlying map contents.
|
inline |
Move constructor.
Other will be left as the empty map
|
inline |
Forward iterator begin.
|
inline |
Forward const_iterator begin.
|
inline |
Forward const_iterator begin.
|
inline |
Forward const_iterator end.
void com::softwareag::connectivity::map_t::clear | ( | ) |
Empty the map, clean the name and free the underlying data.
|
inline |
Return a deep copy of this map.
|
inline |
Returns true if the map is empty (size() == 0)
|
inline |
Forward iterator end.
|
inline |
Forward const_iterator end.
size_t com::softwareag::connectivity::map_t::erase | ( | const data_t & | k | ) |
Remove the item with the specified key.
Returns the number of items removed (always 1)
void com::softwareag::connectivity::map_t::erase | ( | iterator | it | ) |
Erase the item pointed to by this iterator.
If the iterator is end() this is a noop.
Searches the map for an item with the given key and returns an iterator to that position in the map.
If it is not found will return end().
const_iterator com::softwareag::connectivity::map_t::find | ( | const data_t & | k | ) | const |
Searches the map for an item with the given key and returns an iterator to that position in the map.
If it is not found will return end().
|
inline |
Get the optional name of this map.
Can return nullptr.
std::pair<iterator, bool> com::softwareag::connectivity::map_t::insert | ( | insertion_t && | v | ) |
Insert a new key/value pair into the map.
If the key already exists then the map is not modified and an iterator to the existing item is returned. Returns pair<iterator, bool> where the iterator points to the item with the given key and the boolean is true if the map needed to be modified with the new pair.
This is a move operator from the data_ts, so they will be left in the empty state. If you do not want this, use .copy(), otherwise use std::move
|
inline |
Insert a new key/value pair into the map.
If the key already exists then the map is not modified and an iterator to the existing item is returned. Returns pair<iterator, bool> where the iterator points to the item with the given key and the boolean is true if the map needed to be modified with the new pair.
This is a move operator from the data_ts, so they will be left in the empty state. If you do not want this, use .copy(), otherwise use std::move
void com::softwareag::connectivity::map_t::moveAll | ( | const std::function< void(data_t &&, data_t &&)> & | fn | ) |
Move all the elements of the map into the given functor and then free and empty the map.
Will always free all elements and the map even if fn throws. If fn throws will not execute fn any further, then will rethrow the exception thrown by fn after freeing the rest of the map.
|
inline |
Returns false if this map deep-equals other.
Move assignment.
Other will be left as the empty map and our previous contents will be freed.
|
inline |
Returns true if this map deep-equals other.
Return a reference to the item with the given key.
If k is not in the map then it inserts it and returns a reference to that. The reference is only valid until this map is mutated or deleted.
Return a reference to the item with the given key.
If k is not in the map then it inserts it and returns a reference to that The reference is only valid until this map is mutated or deleted.
Return a reference to the item with the given key.
If k is not in the map then throws std::runtime_error. The reference is only valid until this map is mutated or deleted.
|
inline |
Set the optional name of this map.
nullptr to undefine
|
inline |
Returns the number of key/value pairs in the map.
|
inline |
Swap the contents of this map and other.
|
inline |
Swap the name of this map and other.