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, AllocDepMap
 

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 DatagetData () const
 
DatagetData ()
 
 operator const Data & () const
 Implicit cast to the data at this node. More...
 
 operator Data & ()
 
const Dataoperator* () const
 Get the data at this node. More...
 
Dataoperator* ()
 
const Dataoperator-> () const
 
Dataoperator-> ()
 
void setKey (const Key &key)
 Set the key used to identify this node. More...
 
const KeygetKey () const
 
KeygetKey ()
 
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 DepMapdeps () 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: