ChimeraTK-ApplicationCore 04.06.00
Loading...
Searching...
No Matches
Model.h File Reference
#include <ChimeraTK/cppext/finally.hpp>
#include <ChimeraTK/RegisterPath.h>
#include <boost/algorithm/string/predicate.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/breadth_first_search.hpp>
#include <boost/graph/depth_first_search.hpp>
#include <boost/graph/filtered_graph.hpp>
#include <boost/graph/graphviz.hpp>
#include <boost/graph/transpose_graph.hpp>
#include <atomic>
#include <map>
#include <memory>
#include <utility>
+ Include dependency graph for Model.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ChimeraTK::Model::Proxy
 Base class for the proxies representing objects in the model. More...
 
class  ChimeraTK::Model::RootProxy
 Proxy representing the root of the application model. More...
 
class  ChimeraTK::Model::ModuleGroupProxy
 
class  ChimeraTK::Model::ApplicationModuleProxy
 
class  ChimeraTK::Model::VariableGroupProxy
 
class  ChimeraTK::Model::DeviceModuleProxy
 
class  ChimeraTK::Model::ProcessVariableProxy
 
class  ChimeraTK::Model::DirectoryProxy
 
class  ChimeraTK::Model::NonOwningProxy< ProxyType >
 Proxy class which does not keep the ownership of the model. More...
 
struct  ChimeraTK::Model::VertexProperties
 Information to be stored with each vertex. More...
 
struct  ChimeraTK::Model::VertexProperties::InvalidProperties
 
struct  ChimeraTK::Model::VertexProperties::RootProperties
 This is used to allow default construction of the std::variant. More...
 
struct  ChimeraTK::Model::VertexProperties::ModuleGroupProperties
 
struct  ChimeraTK::Model::VertexProperties::ApplicationModuleProperties
 
struct  ChimeraTK::Model::VertexProperties::VariableGroupProperties
 
struct  ChimeraTK::Model::VertexProperties::DeviceModuleProperties
 
struct  ChimeraTK::Model::VertexProperties::ProcessVariableProperties
 
struct  ChimeraTK::Model::VertexProperties::DirectoryProperties
 
struct  ChimeraTK::Model::EdgeProperties
 Information to be stored with each edge. More...
 
struct  ChimeraTK::Model::SearchType
 Do not use these class definitions, instead use the static instances below. More...
 
struct  ChimeraTK::Model::AdjacentSearch
 
struct  ChimeraTK::Model::AdjacentInSearch
 
struct  ChimeraTK::Model::AdjacentOutSearch
 
struct  ChimeraTK::Model::DepthFirstSearch
 
struct  ChimeraTK::Model::BreadthFirstSearch
 
struct  ChimeraTK::Model::detail::ValueHolder< T >
 Helper to hold values of an arbitrary type including void (in which case no value is held, but no error occurs) More...
 
struct  ChimeraTK::Model::detail::ValueHolder< void >
 
struct  ChimeraTK::Model::SearchOption
 Do not use these class definitions, instead use the static instances below. More...
 
struct  ChimeraTK::Model::ContinueSearchDisjunctTrees
 
struct  ChimeraTK::Model::ReturnFirstHit
 
struct  ChimeraTK::Model::VisitOrder
 
struct  ChimeraTK::Model::ReturnFirstHitWithValue< T >
 
struct  ChimeraTK::Model::PropertyFilterTag< PROPERTIES >
 
struct  ChimeraTK::Model::OrSet< FILTER_LHS, FILTER_RHS >
 
struct  ChimeraTK::Model::AndSet< FILTER_LHS, FILTER_RHS >
 
struct  ChimeraTK::Model::EdgeFilter< FILTER >
 
struct  ChimeraTK::Model::VertexFilter< FILTER >
 
struct  ChimeraTK::Model::CombinedSearchConfig< A, B >
 
struct  ChimeraTK::Model::SearchTypeHolder< SEARCH_TYPE >
 
class  ChimeraTK::Model::Impl
 Implementation class for the model. More...
 
struct  ChimeraTK::Model::Proxy::ProxyData
 The data holding struct for the proxy classes. More...
 
struct  ChimeraTK::Model::detail::VisitorHelper< BASE, VISITOR, FILTER, RETURN_FIRST_HIT >
 
class  ChimeraTK::Model::detail::VisitorHelper< BASE, VISITOR, FILTER, RETURN_FIRST_HIT >::StopException
 

Namespaces

namespace  ChimeraTK
 InvalidityTracer application module.
 
namespace  ChimeraTK::Model
 
namespace  ChimeraTK::Model::detail
 

Typedefs

using ChimeraTK::Model::detail::OutEdgeListType = boost::multisetS
 
using ChimeraTK::Model::detail::VertexListType = boost::listS
 
using ChimeraTK::Model::Vertex = boost::adjacency_list< detail::OutEdgeListType, detail::VertexListType, boost::bidirectionalS >::vertex_descriptor
 
using ChimeraTK::Model::Graph = boost::adjacency_list< detail::OutEdgeListType, detail::VertexListType, boost::bidirectionalS, VertexProperties, EdgeProperties >
 Graph type for the model.
 
using ChimeraTK::Model::Edge = Graph::edge_descriptor
 
using ChimeraTK::Model::EdgeFilteredView = boost::filtered_graph< Graph, std::function< bool(const Edge &)>, boost::keep_all >
 
template<typename VISITOR , typename VERTEX_FILTER >
using ChimeraTK::Model::detail::VisitorReturnType = typename std::invoke_result< VISITOR, typename std::invoke_result< decltype(detail::findVertexFilterAcceptedProxyType< VERTEX_FILTER >), VERTEX_FILTER >::type >::type
 Helper to get the return type of a visitor functor, which accepts any proxy type which can pass the given vertex filter.
 

Functions

template<typename PROPERTY_OR_PROXY >
constexpr bool ChimeraTK::Model::isRoot (const PROPERTY_OR_PROXY &)
 Predicates to identify the type of a proxy or a properties struct.
 
template<typename PROPERTY_OR_PROXY >
constexpr bool ChimeraTK::Model::isModuleGroup (const PROPERTY_OR_PROXY &)
 
template<typename PROPERTY_OR_PROXY >
constexpr bool ChimeraTK::Model::isApplicationModule (const PROPERTY_OR_PROXY &)
 
template<typename PROPERTY_OR_PROXY >
constexpr bool ChimeraTK::Model::isVariableGroup (const PROPERTY_OR_PROXY &)
 
template<typename PROPERTY_OR_PROXY >
constexpr bool ChimeraTK::Model::isDeviceModule (const PROPERTY_OR_PROXY &)
 
template<typename PROPERTY_OR_PROXY >
constexpr bool ChimeraTK::Model::isVariable (const PROPERTY_OR_PROXY &)
 
template<typename PROPERTY_OR_PROXY >
constexpr bool ChimeraTK::Model::isDirectory (const PROPERTY_OR_PROXY &)
 
template<typename PROPERTY_OR_PROXY >
constexpr bool ChimeraTK::Model::hasName (const PROPERTY_OR_PROXY &)
 
constexpr ReturnFirstHitWithValue< void > ChimeraTK::Model::returnFirstHit ()
 Stop the search after the first hit and return.
 
template<typename VERTEX_FILTER >
constexpr auto ChimeraTK::Model::detail::findVertexFilterAcceptedProxyType (VERTEX_FILTER vertexFilter)
 Helper function to find one of the Proxy types which will be let through by the given vertex filter.
 
template<typename FIRST , typename... MORE>
constexpr auto ChimeraTK::Model::combinedSearchConfig (FIRST first, MORE... more)
 
template<typename FIRST , typename... ARGS>
constexpr auto ChimeraTK::Model::getEdgeFilter (FIRST first, ARGS... args)
 
constexpr auto ChimeraTK::Model::getEdgeFilter ()
 
template<typename FIRST , typename... ARGS>
constexpr auto ChimeraTK::Model::getVertexFilter (FIRST first, ARGS... args)
 
constexpr auto ChimeraTK::Model::getVertexFilter ()
 
template<typename FIRST , typename... ARGS>
constexpr auto ChimeraTK::Model::getSearchType ()
 
constexpr auto ChimeraTK::Model::getSearchType ()
 
template<typename SEARCH_OPTION_TO_FIND , typename FIRST , typename... ARGS>
constexpr bool ChimeraTK::Model::hasSearchOption ()
 
template<typename SEARCH_OPTION_TO_FIND >
constexpr bool ChimeraTK::Model::hasSearchOption ()
 
template<typename SEARCH_OPTION_TO_FIND , typename FIRST , typename... ARGS>
constexpr auto ChimeraTK::Model::getSearchOption (FIRST first, ARGS... args)
 
template<typename SEARCH_OPTION_TO_FIND >
constexpr auto ChimeraTK::Model::getSearchOption ()
 
template<typename FIRST , typename... ARGS>
constexpr void ChimeraTK::Model::checkConfigValidity (FIRST, ARGS... args)
 
constexpr void ChimeraTK::Model::checkConfigValidity ()