Honeycomb  0.1
Component-Model Framework
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
honey::DepNode< Data_, Key_, Alloc_ > Class Template Reference

Dependency node for insertion into graph. More...

#include <Dep.h>

Public Types

enum  DepType { DepType::out, DepType::in }
 
typedef Data_ Data
 
typedef Key_ Key
 
template<class T >
using Alloc = Alloc_< T >
 
typedef stdutil::unordered_map< Key, DepType, Alloc > DepMap
 

Public Member Functions

 DepNode (const Data &data=Data(), const Key &key=Key())
 
void setData (const Data &data)
 Set the data that this node contains. More...
 
const Data & getData () const
 
Data & getData ()
 
 operator const Data & () const
 Implicit cast to the data at this node. More...
 
 operator Data & ()
 
const Data & operator* () const
 Get the data at this node. More...
 
Data & operator* ()
 
const Data & operator-> () const
 
Data & operator-> ()
 
void setKey (const Key &key)
 Set the key used to identify this node. More...
 
const Key & getKey () const
 
Key & getKey ()
 
void add (const Key &key, DepType type=DepType::out)
 Add a dependency link. More...
 
void remove (const Key &key)
 Remove a dependency link. More...
 
void clear ()
 Remove all dependency links. More...
 
const DepMap & deps () const
 Get dep links. More...
 

Static Public Member Functions

static DepType depTypeOpp (DepType type)
 Get opposite dependency type. More...
 

Static Public Attributes

static const int depTypeMax = 2
 

Detailed Description

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
class honey::DepNode< Data_, Key_, Alloc_ >

Dependency node for insertion into graph.

Member Typedef Documentation

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
template<class T >
using honey::DepNode< Data_, Key_, Alloc_ >::Alloc = Alloc_<T>
template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
typedef Data_ honey::DepNode< Data_, Key_, Alloc_ >::Data
template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
typedef stdutil::unordered_map<Key, DepType, Alloc> honey::DepNode< Data_, Key_, Alloc_ >::DepMap
template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
typedef Key_ honey::DepNode< Data_, Key_, Alloc_ >::Key

Member Enumeration Documentation

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
enum honey::DepNode::DepType
strong
Enumerator
out 

this node depends on the target node

in 

this node is depended on by the target node

Constructor & Destructor Documentation

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
honey::DepNode< Data_, Key_, Alloc_ >::DepNode ( const Data &  data = Data(),
const Key &  key = Key() 
)
inline

Member Function Documentation

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
void honey::DepNode< Data_, Key_, Alloc_ >::add ( const Key &  key,
DepType  type = DepType::out 
)
inline

Add a dependency link.

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
void honey::DepNode< Data_, Key_, Alloc_ >::clear ( )
inline

Remove all dependency links.

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
const DepMap& honey::DepNode< Data_, Key_, Alloc_ >::deps ( ) const
inline

Get dep links.

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
static DepType honey::DepNode< Data_, Key_, Alloc_ >::depTypeOpp ( DepType  type)
inlinestatic

Get opposite dependency type.

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
const Data& honey::DepNode< Data_, Key_, Alloc_ >::getData ( ) const
inline
template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
Data& honey::DepNode< Data_, Key_, Alloc_ >::getData ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
const Key& honey::DepNode< Data_, Key_, Alloc_ >::getKey ( ) const
inline
template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
Key& honey::DepNode< Data_, Key_, Alloc_ >::getKey ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
honey::DepNode< Data_, Key_, Alloc_ >::operator const Data & ( ) const
inline

Implicit cast to the data at this node.

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
honey::DepNode< Data_, Key_, Alloc_ >::operator Data & ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
const Data& honey::DepNode< Data_, Key_, Alloc_ >::operator* ( ) const
inline

Get the data at this node.

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
Data& honey::DepNode< Data_, Key_, Alloc_ >::operator* ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
const Data& honey::DepNode< Data_, Key_, Alloc_ >::operator-> ( ) const
inline
template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
Data& honey::DepNode< Data_, Key_, Alloc_ >::operator-> ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
void honey::DepNode< Data_, Key_, Alloc_ >::remove ( const Key &  key)
inline

Remove a dependency link.

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
void honey::DepNode< Data_, Key_, Alloc_ >::setData ( const Data &  data)
inline

Set the data that this node contains.

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
void honey::DepNode< Data_, Key_, Alloc_ >::setKey ( const Key &  key)
inline

Set the key used to identify this node.

Member Data Documentation

template<class Data_, class Key_ = Id, template< class > class Alloc_ = SmallAllocator>
const int honey::DepNode< Data_, Key_, Alloc_ >::depTypeMax = 2
static

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