Loading...
Searching...
No Matches
Dune::TypeTree::ProxyNode< Node > Class Template Reference
dune-typetree » Nodes

Base class for nodes acting as a proxy for an existing node. More...

`#include <dune/typetree/proxynode.hh>`

Inheritance diagram for Dune::TypeTree::ProxyNode< Node >:

## Public Types

typedef Node | ProxiedNode
typedef Dune::TypeTree::NodeTag< Node > | NodeTag

## Public Member Functions

template<class N = Node, std::enable_if_t< not hasStaticDegree< N >, int > = 0>
auto | degree () const

## Static Public Member Functions

template<class N = Node, std::enable_if_t< hasStaticDegree< N >, int > = 0>
static constexpr auto | degree ()

## Static Public Attributes

static const bool | isLeaf = Node::isLeaf
| Mark this class as non leaf in the dune-typetree.
static const bool | isPower = Node::isPower
| Mark this class as a non power in the dune-typetree.
static const bool | isComposite = Node::isComposite
| Mark this class as a composite in the dune-typetree.

## Protected Member Functions

Access to the proxied node
template<bool enabled = !proxiedNodeIsConst>
std::enable_if< enabled, Node & >::type | proxiedNode ()
| Returns the proxied node.
const Node & | proxiedNode () const
| Returns the proxied node (const version).
template<bool enabled = !proxiedNodeIsConst>
std::enable_if< enabled, std::shared_ptr< Node > >::type | proxiedNodeStorage ()
| Returns the storage of the proxied node.
std::shared_ptr< const Node > | proxiedNodeStorage () const
| Returns the storage of the proxied node (const version).
Constructors
| ProxyNode (Node &node)
| ProxyNode (std::shared_ptr< Node > node)

## Friends

class | StaticChildAccessors< Node >
class | DynamicChildAccessors< Node >

## Detailed Description

template<typename Node>
class Dune::TypeTree::ProxyNode< Node >

Base class for nodes acting as a proxy for an existing node.

ProxyNode is a utility class for implementing proxy classes that need to provide the TypeTree node functionality of the proxied class. It exactly mirrors the TypeTree node characteristics of the proxied node.

## Member Typedef Documentation

## NodeTag

template<typename Node>

typedef Dune::TypeTree::NodeTag<Node> Dune::TypeTree::ProxyNode< Node >::NodeTag

## ProxiedNode

template<typename Node>

typedef Node Dune::TypeTree::ProxyNode< Node >::ProxiedNode

## Constructor & Destructor Documentation

## ProxyNode() [1/2]

template<typename Node>

Dune::TypeTree::ProxyNode< Node >::ProxyNode | ( | Node & | node | ) |

inline protected

## ProxyNode() [2/2]

template<typename Node>

Dune::TypeTree::ProxyNode< Node >::ProxyNode | ( | std::shared_ptr< Node > | node | ) |

inline protected

## Member Function Documentation

## degree() [1/2]

template<typename Node>
template<class N = Node, std::enable_if_t< hasStaticDegree< N >, int > = 0>

constexpr auto Dune::TypeTree::ProxyNode< Node >::degree | ( |  | ) |

inline static constexpr

## degree() [2/2]

template<typename Node>
template<class N = Node, std::enable_if_t< not hasStaticDegree< N >, int > = 0>

auto Dune::TypeTree::ProxyNode< Node >::degree | ( |  | ) | const

inline

## proxiedNode() [1/2]

template<typename Node>
template<bool enabled = !proxiedNodeIsConst>

std::enable_if< enabled, Node & >::type Dune::TypeTree::ProxyNode< Node >::proxiedNode | ( |  | ) |

inline protected

Returns the proxied node.

## proxiedNode() [2/2]

template<typename Node>

const Node & Dune::TypeTree::ProxyNode< Node >::proxiedNode | ( |  | ) | const

inline protected

Returns the proxied node (const version).

## proxiedNodeStorage() [1/2]

template<typename Node>
template<bool enabled = !proxiedNodeIsConst>

std::enable_if< enabled, std::shared_ptr< Node > >::type Dune::TypeTree::ProxyNode< Node >::proxiedNodeStorage | ( |  | ) |

inline protected

Returns the storage of the proxied node.

## proxiedNodeStorage() [2/2]

template<typename Node>

std::shared_ptr< const Node > Dune::TypeTree::ProxyNode< Node >::proxiedNodeStorage | ( |  | ) | const

inline protected

Returns the storage of the proxied node (const version).

## Friends And Related Symbol Documentation

## DynamicChildAccessors< Node >

template<typename Node>

friend class DynamicChildAccessors< Node >

friend

## StaticChildAccessors< Node >

template<typename Node>

friend class StaticChildAccessors< Node >

friend

## Member Data Documentation

## isComposite

template<typename Node>

const bool Dune::TypeTree::ProxyNode< Node >::isComposite = Node::isComposite

static

Mark this class as a composite in the dune-typetree.

## isLeaf

template<typename Node>

const bool Dune::TypeTree::ProxyNode< Node >::isLeaf = Node::isLeaf

static

Mark this class as non leaf in the dune-typetree.

## isPower

template<typename Node>

const bool Dune::TypeTree::ProxyNode< Node >::isPower = Node::isPower

static

Mark this class as a non power in the dune-typetree.

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

- proxynode.hh