SMTK
@SMTK_VERSION@
Simulation Modeling Tool Kit
|
A container for arcs held by a resource. More...
#include <ArcMap.h>
Public Types | |
using | key_type = smtk::common::UUID |
![]() | |
using | KeyType = smtk::string::Hash |
Public Member Functions | |
smtkTypeMacroBase (smtk::graph::ArcMap) | |
smtkSuperclassMacro (smtk::common::TypeMap< smtk::common::UUID >) | |
template<typename List > | |
ArcMap (identity< List >) | |
ArcMap (const ArcMap &)=delete | |
Do not allow the map to be copied: | |
ArcMap & | operator= (const ArcMap &)=delete |
template<typename ArcTraits > | |
const ArcImplementation< ArcTraits > * | at () const |
Return the arc's implementation object given its trait type. More... | |
template<typename ArcTraits > | |
ArcImplementation< ArcTraits > * | at () |
template<typename Tuple , typename Functor , typename... Args> | |
void | invoke (Args &&... args) const |
Invoke a Functor (which accepts args) on each arc type in the Tuple. More... | |
template<typename Tuple , typename Functor , typename... Args> | |
void | invoke (Args &&... args) |
const std::set< smtk::string::Token > & | types () const |
Return the type-names of the arc types accepted by this ArcMap instance. | |
![]() | |
TypeContainer ()=default | |
Construct an empty TypeContainer. | |
TypeContainer (const TypeContainer &) | |
Construct a TypeContainer whose contents are copied from an existing TypeContainer. | |
TypeContainer (TypeContainer &&)=default | |
Move the contents of one TypeContainer into a new TypeContainer. | |
TypeContainer & | operator= (const TypeContainer &) |
Copy the contents of an existing TypeContainer into this one. | |
TypeContainer & | operator= (TypeContainer &&)=default |
Move the contents of an existing TypeContainer into this one. | |
template<typename Arg , typename... Args, typename std::enable_if<!std::is_base_of< TypeContainer, Arg >::value, int >::type = 0> | |
TypeContainer (const Arg &arg, const Args &... args) | |
Construct a TypeContainer instance from any number of elements. More... | |
template<typename Type > | |
KeyType | keyId () const |
Return the ID used to index a given Type. | |
template<typename Type > | |
bool | contains () const |
Check if a Type is present in the TypeContainer. | |
template<typename Type > | |
bool | insert (const Type &value) |
Insert a Type instance into the TypeContainer. More... | |
template<typename Type > | |
bool | insert_or_assign (const Type &value) |
Insert a Type instance into the TypeContainer if it does not exist already or replace it if it does. | |
template<typename Type , typename... Args> | |
bool | emplace (Args &&... args) |
Emplace a Type instance into the TypeContainer. | |
template<typename Type > | |
const Type & | get () const |
Access a Type instance, and throw if it is not in the TypeContainer. | |
template<typename Type > | |
std::enable_if< std::is_default_constructible< Type >::value, Type & >::type | get () noexcept |
For default-constructible types, access a Type instance, creating one if it is not in the TypeContainer. | |
template<typename Type > | |
std::enable_if<!std::is_default_constructible< Type >::value, Type & >::type | get () |
For non-default-constructible types, access a Type instance; throw if it is not in the TypeContainer. | |
template<typename Type > | |
bool | erase () |
Remove a specific type of object from the container. | |
bool | empty () const noexcept |
Return true if the container holds no objects and false otherwise. | |
std::size_t | size () const noexcept |
Return the nubmer of objects held by the container. | |
void | clear () noexcept |
Erase all objects held by the container. | |
std::set< smtk::string::Token > | keys () const |
Return a set of keys corresponding to the values in the container. More... | |
A container for arcs held by a resource.
This class extends TypeContainer in two ways:
|
inline |
Return the arc's implementation object given its trait type.
This will return null when the arc map does not hold arcs of the given trait-type.
|
inline |
Invoke a Functor (which accepts args) on each arc type in the Tuple.
For each arc type, the functor is passed the input arguments (which it may modify). Note that the object passed to each functor will be an ArcImplementation<ArcTraits>, where each ArcTraits is drawn from the Tuple.