ADTF  3.18.2
TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >

Utility class for observable named items where the order is NOT important. More...

Inheritance diagram for TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >:
[legend]

Public Types

typedef DDL_TYPE_TO_ACCESS access_type
 local definition of the access type
 
typedef std::shared_ptr< DDL_TYPE_TO_ACCESS > value_type
 local definition of the value type
 
typedef std::unordered_map< std::string, value_typecontainer_type
 local definition of the container type
 
typedef container_type::iterator iterator
 local definition of the container iterator
 
typedef container_type::const_iterator const_iterator
 local definition of the container const_iterator
 
typedef TypeAccessMapObserver< DDL_TYPE_TO_ACCESS > parent_type
 local definition of the parent type to register observe
 
typedef TypeAccessMapSubject< DDL_TYPE_TO_ACCESS > map_subject_type
 local definition of the internal subject type
 
typedef map_subject_type::observer_type observer_type
 local definition of the observer type
 
typedef parent_type::event_code_type event_code_type
 local definition of the eventcode type
 
typedef parent_type::subject_type subject_type
 local definition of the subject type
 
- Public Types inherited from ModelObserverUtility< MODEL_SUBJECT_T, EVENT_CODE_T >
typedef EVENT_CODE_T event_code_type
 local definition of the event code type
 
typedef MODEL_SUBJECT_T subject_type
 local definition of the subject code type
 

Public Member Functions

 TypeAccessMap ()=delete
 no default CTOR!
 
 TypeAccessMap (TYPE_VALIDATOR_CLASS *validator, const std::string &validation_info)
 CTOR. More...
 
virtual ~TypeAccessMap ()
 DTOR.
 
 TypeAccessMap (TypeAccessMap &&other)
 move CTOR
 
TypeAccessMapoperator= (TypeAccessMap &&other)
 move assignment operator More...
 
 TypeAccessMap (const TypeAccessMap &other)
 copies (deepcopy!) CTOR More...
 
TypeAccessMapoperator= (const TypeAccessMap &other)
 copies (deepcopy!) and overwrite the current content. More...
 
std::shared_ptr< const DDL_TYPE_TO_ACCESS > get (const std::string &type_name) const
 get the item with the given name type_name More...
 
bool contains (const std::string &type_name) const
 determines is the type name exists in this map More...
 
bool contains (const DDL_TYPE_TO_ACCESS &type_to_find) const
 determines if the item is in this map. More...
 
bool contains (const TypeAccessMap &other) const
 determines if the other is a subset of this map More...
 
void add (const DDL_TYPE_TO_ACCESS &type_to_add)
 adds the given item More...
 
void emplace (DDL_TYPE_TO_ACCESS &&type_to_add)
 emplaces the given item More...
 
void remove (const std::string &type_name)
 item to remove More...
 
std::shared_ptr< DDL_TYPE_TO_ACCESS > access (const std::string &type_name)
 change access to an item More...
 
size_t getSize () const
 Get the Size. More...
 
iterator begin ()
 the range based begin iterator More...
 
iterator end ()
 the range based end iterator More...
 
const_iterator cbegin () const
 const begin iterator access More...
 
const_iterator cend () const
 const end iterator access More...
 
const_iterator begin () const
 range based begin operator for const access More...
 
const_iterator end () const
 range based end operator for const access More...
 
bool operator== (const TypeAccessMap &other) const
 equality operator. More...
 
bool operator!= (const TypeAccessMap &other) const
 non equality operator. More...
 
void clear ()
 clears the list and remove this as observer
 
void modelChanged (event_code_type event_code, subject_type &subject_changed, const std::string &additional_info)
 overrides the observers utility function. More...
 

Public Attributes

friend TYPE_VALIDATOR_CLASS
 friend validator class
 

Private Member Functions

void deepCopy (TypeAccessMap &destination, TYPE_VALIDATOR_CLASS *validator) const
 copies the content of the of the list (by reseting the observer) and resets the validator to the given one. More...
 

Private Attributes

container_type _types
 
TYPE_VALIDATOR_CLASS_validator
 
std::string _validation_info
 

Additional Inherited Members

- Protected Member Functions inherited from ModelObserverUtility< MODEL_SUBJECT_T, EVENT_CODE_T >
virtual ~ModelObserverUtility ()
 protected DTOR
 

Detailed Description

template<typename DDL_TYPE_TO_ACCESS, typename TYPE_VALIDATOR_CLASS>
class ddl::dd::utility::TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >

Utility class for observable named items where the order is NOT important.

Template Parameters
DDL_TYPE_TO_ACCESSthe value type
TYPE_VALIDATOR_CLASSthe validator class to inform on changes

Definition at line 73 of file dd_access_map.h.

Constructor & Destructor Documentation

◆ TypeAccessMap() [1/2]

TypeAccessMap ( TYPE_VALIDATOR_CLASS validator,
const std::string &  validation_info 
)
inline

CTOR.

Parameters
validatorthe validator for name check!
validation_infoinfo for errors

Definition at line 110 of file dd_access_map.h.

◆ TypeAccessMap() [2/2]

TypeAccessMap ( const TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS > &  other)
inline

copies (deepcopy!) CTOR

Parameters
otherthe other list

Definition at line 157 of file dd_access_map.h.

Member Function Documentation

◆ access()

std::shared_ptr<DDL_TYPE_TO_ACCESS> access ( const std::string &  type_name)
inline

change access to an item

Parameters
type_namethe item name
Returns
std::shared_ptr<DDL_TYPE_TO_ACCESS>

Definition at line 360 of file dd_access_map.h.

Referenced by TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::remove().

◆ add()

void add ( const DDL_TYPE_TO_ACCESS &  type_to_add)
inline

adds the given item

Parameters
type_to_addthe item to add
Exceptions
throwsif a item with that name already exists

Definition at line 257 of file dd_access_map.h.

References TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::contains(), and TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::get().

◆ begin() [1/2]

iterator begin ( )
inline

the range based begin iterator

Returns
iterator

Definition at line 382 of file dd_access_map.h.

◆ begin() [2/2]

const_iterator begin ( ) const
inline

range based begin operator for const access

Returns
const_iterator

Definition at line 418 of file dd_access_map.h.

References TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::cbegin().

◆ cbegin()

const_iterator cbegin ( ) const
inline

const begin iterator access

Returns
const_iterator

Definition at line 400 of file dd_access_map.h.

Referenced by TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::begin().

◆ cend()

const_iterator cend ( ) const
inline

const end iterator access

Returns
const_iterator

Definition at line 409 of file dd_access_map.h.

Referenced by TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::end().

◆ contains() [1/3]

bool contains ( const DDL_TYPE_TO_ACCESS &  type_to_find) const
inline

determines if the item is in this map.

Parameters
type_to_findthe item to find
Returns
true the item is in this map
false the item is not in this map

Definition at line 227 of file dd_access_map.h.

◆ contains() [2/3]

bool contains ( const std::string &  type_name) const
inline

◆ contains() [3/3]

bool contains ( const TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS > &  other) const
inline

determines if the other is a subset of this map

Parameters
otherthe other map
Returns
true the other map is a subset of this
false the other is not a subset of this

Definition at line 242 of file dd_access_map.h.

References TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::contains().

◆ deepCopy()

void deepCopy ( TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS > &  destination,
TYPE_VALIDATOR_CLASS validator 
) const
inlineprivate

copies the content of the of the list (by reseting the observer) and resets the validator to the given one.

Parameters
destinationthe destination list where to copy the content of this.
validatorthe validator to set in the destination!

Definition at line 521 of file dd_access_map.h.

◆ emplace()

void emplace ( DDL_TYPE_TO_ACCESS &&  type_to_add)
inline

emplaces the given item

Parameters
type_to_addthe item to emplace
Exceptions
throwsif a item with that name already exists

Definition at line 299 of file dd_access_map.h.

References TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::contains(), and TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::get().

Referenced by DDFromXMLFactory< DOM_NODE_TYPE >::createDD().

◆ end() [1/2]

iterator end ( )
inline

the range based end iterator

Returns
iterator

Definition at line 391 of file dd_access_map.h.

◆ end() [2/2]

const_iterator end ( ) const
inline

range based end operator for const access

Returns
const_iterator

Definition at line 427 of file dd_access_map.h.

References TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::cend().

◆ get()

std::shared_ptr<const DDL_TYPE_TO_ACCESS> get ( const std::string &  type_name) const
inline

get the item with the given name type_name

Parameters
type_namethe item to find
Returns
std::shared_ptr<const DDL_TYPE_TO_ACCESS>

Definition at line 196 of file dd_access_map.h.

Referenced by TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::add(), and TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::emplace().

◆ getSize()

size_t getSize ( ) const
inline

Get the Size.

Returns
size_t

Definition at line 373 of file dd_access_map.h.

Referenced by TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::operator==().

◆ modelChanged()

void modelChanged ( event_code_type  event_code,
subject_type subject_changed,
const std::string &  additional_info 
)
inlinevirtual

overrides the observers utility function.

Parameters
event_codethe internal event_code
subject_changedthe subject (these are the items of the list)
additional_infothe additional info (if any)

Implements ModelObserverUtility< MODEL_SUBJECT_T, EVENT_CODE_T >.

Definition at line 480 of file dd_access_map.h.

References TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::contains().

◆ operator!=()

bool operator!= ( const TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS > &  other) const
inline

non equality operator.

Parameters
otherthe other TypeAccessMap to compare this map to.
Returns
false the TypeAccessMap are equal (in size and content)
true the TypeAccessMap are not equal.

Definition at line 454 of file dd_access_map.h.

References TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::operator==().

◆ operator=() [1/2]

TypeAccessMap& operator= ( const TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS > &  other)
inline

copies (deepcopy!) and overwrite the current content.

Parameters
otherthe other list
Returns
TypeAccessMap&

Definition at line 174 of file dd_access_map.h.

References TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::clear().

◆ operator=() [2/2]

TypeAccessMap& operator= ( TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS > &&  other)
inline

move assignment operator

Returns
TypeAccessMap&

Definition at line 134 of file dd_access_map.h.

References TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::clear().

◆ operator==()

bool operator== ( const TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS > &  other) const
inline

equality operator.

Parameters
otherthe other TypeAccessMap to compare this map to.
Returns
true the TypeAccessMap are equal (in size and content)
false the TypeAccessMap are not equal.

Definition at line 438 of file dd_access_map.h.

References TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::contains(), and TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::getSize().

Referenced by TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::operator!=().

◆ remove()

void remove ( const std::string &  type_name)
inline

item to remove

Parameters
type_namethe item name to remove

Definition at line 338 of file dd_access_map.h.

References TypeAccessMap< DDL_TYPE_TO_ACCESS, TYPE_VALIDATOR_CLASS >::access().