Safe DDS
eprosima::safedds::memory::container::StaticMap< K, V, N > Class Template Reference

static size Map-like data structure. More...

#include <StaticMap.hpp>

Classes

class  StaticMapNode
 Internal StaticMapNode to manage buffers. More...
 

Public Member Functions

 StaticMap () noexcept=default
 
virtual ~StaticMap () noexcept=default
 Virtual destructor. More...
 
 StaticMap (const StaticMap &) noexcept=delete
 Copy deleted. More...
 
 StaticMap (StaticMap &&) noexcept=delete
 Movement deleted. More...
 
StaticMapoperator= (const StaticMap &) noexcept=delete
 Copy operator deleted. More...
 
StaticMapoperator= (StaticMap &&) noexcept=delete
 Movement operator deleted. More...
 
V * add (const K &key) noexcept override
 Add element. More...
 
bool add (const K &key, const V &value) noexcept override
 Add element. More...
 
V * find (const K &key) noexcept override
 Find value of given key. More...
 
V * at (uint32_t pos) noexcept override
 Get element of given index. More...
 
const V * const_at (uint32_t pos) const noexcept override
 Get element of given index. More...
 
const K * key_at (uint32_t pos) const noexcept override
 Get key on given index. More...
 
void remove (const K &key) noexcept override
 Remove element of given key. More...
 
uint32_t size () const noexcept override
 Used size of the container. More...
 
uint32_t capacity () const noexcept override
 Max capacity of the container. More...
 
void clear () noexcept override
 Remove all elements from the container. More...
 

Protected Attributes

Array< StaticMapNode, N > map_ {}
 Local buffer. More...
 

Additional Inherited Members

- Protected Member Functions inherited from eprosima::safedds::memory::IMap< K, V >
 ~IMap () noexcept=default
 Protected destructor ownership defined on creation. More...
 
 IMap () noexcept=default
 Default creation. More...
 
 IMap (const IMap &) noexcept=delete
 Copy deleted. More...
 
 IMap (IMap &&) noexcept=delete
 Movement deleted. More...
 
IMapoperator= (const IMap &) noexcept=delete
 Copy operator deleted. More...
 
IMapoperator= (IMap &&) noexcept=delete
 Movement operator deleted. More...
 
- Protected Member Functions inherited from eprosima::safedds::memory::IMapBase< K >
 ~IMapBase () noexcept=default
 Protected destructor ownership defined on creation. More...
 
 IMapBase () noexcept=default
 Default creation. More...
 
 IMapBase (const IMapBase &) noexcept=delete
 Copy deleted. More...
 
 IMapBase (IMapBase &&) noexcept=delete
 Movement deleted. More...
 
IMapBaseoperator= (const IMapBase &) noexcept=delete
 Copy operator deleted. More...
 
IMapBaseoperator= (IMapBase &&) noexcept=delete
 Movement operator deleted. More...
 
- Protected Member Functions inherited from eprosima::safedds::memory::IContainerBase
 ~IContainerBase () noexcept=default
 Protected destructor ownership defined on creation. More...
 
 IContainerBase () noexcept=default
 Default creation. More...
 
 IContainerBase (const IContainerBase &) noexcept=default
 Copy allowed. More...
 
 IContainerBase (IContainerBase &&) noexcept=default
 Movement allowed. More...
 
IContainerBaseoperator= (const IContainerBase &) noexcept=default
 Copy operator deleted. More...
 
IContainerBaseoperator= (IContainerBase &&) noexcept=default
 Movement operator deleted. More...
 

Detailed Description

template<typename K, typename V, uint32_t N>
class eprosima::safedds::memory::container::StaticMap< K, V, N >

static size Map-like data structure.

Constructor & Destructor Documentation

◆ StaticMap() [1/3]

template<typename K , typename V , uint32_t N>
eprosima::safedds::memory::container::StaticMap< K, V, N >::StaticMap ( )
defaultnoexcept

◆ ~StaticMap()

template<typename K , typename V , uint32_t N>
virtual eprosima::safedds::memory::container::StaticMap< K, V, N >::~StaticMap ( )
virtualdefaultnoexcept

Virtual destructor.

◆ StaticMap() [2/3]

template<typename K , typename V , uint32_t N>
eprosima::safedds::memory::container::StaticMap< K, V, N >::StaticMap ( const StaticMap< K, V, N > &  )
deletenoexcept

Copy deleted.

◆ StaticMap() [3/3]

template<typename K , typename V , uint32_t N>
eprosima::safedds::memory::container::StaticMap< K, V, N >::StaticMap ( StaticMap< K, V, N > &&  )
deletenoexcept

Movement deleted.

Member Function Documentation

◆ add() [1/2]

template<typename K , typename V , uint32_t N>
V* eprosima::safedds::memory::container::StaticMap< K, V, N >::add ( const K &  key)
inlineoverridevirtualnoexcept

Add element.

Warning
this method may not ensure initialization of the element.
Parameters
[in]keykey.
Returns
Pointer to V in memory, nullptr if failure.

Implements eprosima::safedds::memory::IMap< K, V >.

◆ add() [2/2]

template<typename K , typename V , uint32_t N>
bool eprosima::safedds::memory::container::StaticMap< K, V, N >::add ( const K &  key,
const V &  value 
)
inlineoverridevirtualnoexcept

Add element.

Parameters
[in]keykey.
[in]valuevalue.
Returns
true if added.

Implements eprosima::safedds::memory::IMap< K, V >.

◆ at()

template<typename K , typename V , uint32_t N>
V* eprosima::safedds::memory::container::StaticMap< K, V, N >::at ( uint32_t  pos)
inlineoverridevirtualnoexcept

Get element of given index.

Parameters
posposition index.
Returns
pointer to value.

Implements eprosima::safedds::memory::IMap< K, V >.

◆ capacity()

template<typename K , typename V , uint32_t N>
uint32_t eprosima::safedds::memory::container::StaticMap< K, V, N >::capacity ( ) const
inlineoverridevirtualnoexcept

Max capacity of the container.

Returns
uint32_t.

Implements eprosima::safedds::memory::IContainerBase.

◆ clear()

template<typename K , typename V , uint32_t N>
void eprosima::safedds::memory::container::StaticMap< K, V, N >::clear ( )
inlineoverridevirtualnoexcept

Remove all elements from the container.

Implements eprosima::safedds::memory::IContainerBase.

◆ const_at()

template<typename K , typename V , uint32_t N>
const V* eprosima::safedds::memory::container::StaticMap< K, V, N >::const_at ( uint32_t  pos) const
inlineoverridevirtualnoexcept

Get element of given index.

Parameters
posposition index.
Returns
pointer to value.

Implements eprosima::safedds::memory::IMap< K, V >.

◆ find()

template<typename K , typename V , uint32_t N>
V* eprosima::safedds::memory::container::StaticMap< K, V, N >::find ( const K &  key)
inlineoverridevirtualnoexcept

Find value of given key.

Parameters
[in]keykey.
Returns
Pointer to v.

Implements eprosima::safedds::memory::IMap< K, V >.

◆ key_at()

template<typename K , typename V , uint32_t N>
const K* eprosima::safedds::memory::container::StaticMap< K, V, N >::key_at ( uint32_t  pos) const
inlineoverridevirtualnoexcept

Get key on given index.

Parameters
posposition index.
Returns
pointer to key.

Implements eprosima::safedds::memory::IMapBase< K >.

◆ operator=() [1/2]

template<typename K , typename V , uint32_t N>
StaticMap& eprosima::safedds::memory::container::StaticMap< K, V, N >::operator= ( const StaticMap< K, V, N > &  )
deletenoexcept

Copy operator deleted.

◆ operator=() [2/2]

template<typename K , typename V , uint32_t N>
StaticMap& eprosima::safedds::memory::container::StaticMap< K, V, N >::operator= ( StaticMap< K, V, N > &&  )
deletenoexcept

Movement operator deleted.

◆ remove()

template<typename K , typename V , uint32_t N>
void eprosima::safedds::memory::container::StaticMap< K, V, N >::remove ( const K &  key)
inlineoverridevirtualnoexcept

Remove element of given key.

Parameters
[in]keykey.

Implements eprosima::safedds::memory::IMapBase< K >.

◆ size()

template<typename K , typename V , uint32_t N>
uint32_t eprosima::safedds::memory::container::StaticMap< K, V, N >::size ( ) const
inlineoverridevirtualnoexcept

Used size of the container.

Returns
uint32_t.

Implements eprosima::safedds::memory::IContainerBase.

Member Data Documentation

◆ map_

template<typename K , typename V , uint32_t N>
Array<StaticMapNode, N> eprosima::safedds::memory::container::StaticMap< K, V, N >::map_ {}
protected

Local buffer.


The documentation for this class was generated from the following file: