Overview     Modules     Class Hierarchy     Classes     Members  

tlp::AbstractProperty< Tnode, Tedge, TPROPERTY > Class Template Reference
[Properties]

#include <AbstractProperty.h>

Inherits tlp::PropertyInterface.

Collaboration diagram for tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >:

List of all members.

Public Member Functions

Static Public Member Functions

Static Public Attributes

Protected Member Functions

Protected Attributes

Friends


Detailed Description

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
class tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >

This class is used to store a property of a graph. A property is a couple of two functions:

  • One from the set of nodes to a set of Tnode value
  • One from the set of edges to a set of Tedge value

A AbstractProperty can be connected or not to a PropertyAlgorithm. In the first case it can be seen as buffer beetween the property and the user. In the second case it is only a memory area for storing data. A AbstractProperty is an observable, so it can be observed by others objects.


Constructor & Destructor Documentation

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::AbstractProperty ( Graph  ) 

Member Function Documentation

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::clone_handler ( AbstractProperty< Tnode, Tedge, TPROPERTY > &   )  [inline, protected, virtual]

Enable to clone part of sub_class.

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
bool tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::compute ( const std::string &  algorithm,
std::string &  msg,
const PropertyContext  
)
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::erase ( const edge  e  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::erase ( const node  n  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual DataMem* tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getEdgeDataMemValue ( const edge  e  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual DataMem* tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getEdgeDefaultDataMemValue (  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual std::string tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getEdgeDefaultStringValue (  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
Tedge::RealType tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getEdgeDefaultValue (  ) 

Returns the edge default value of the property proxy warnning: If the type is a pointer it can produce big memory leak if the user doesn't manage the memory himself

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual std::string tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getEdgeStringValue ( const edge  e  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
ReturnType<typename Tedge::RealType>::Value tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getEdgeValue ( const edge  e  ) 

Returns the value associated to the node n in this property. If the value is already fixed it is done in constant time. else if it is a computed property (plug-in), it calls the associated property If there is no value and no algorithms it returns the default value depending of the type.

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual DataMem* tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getNodeDataMemValue ( const node  n  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual DataMem* tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getNodeDefaultDataMemValue (  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual std::string tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getNodeDefaultStringValue (  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
Tnode::RealType tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getNodeDefaultValue (  ) 

Returns the node default value of the property proxy warnning: If the type is a pointer it can produce big memory leak if the user doesn't manage the memory himself

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual std::string tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getNodeStringValue ( const node  n  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
ReturnType<typename Tnode::RealType>::Value tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getNodeValue ( const node  n  ) 

Returns the value associated to the node n in this property. If the value is already fixed it is done in constant time. else if it is a computed property (plug-in), it calls the associated property If there is no value and no algorithms it returns the default value depending of the type.

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual DataMem* tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getNonDefaultDataMemValue ( const edge  e  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual DataMem* tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getNonDefaultDataMemValue ( const node  n  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual Iterator<edge>* tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getNonDefaultValuatedEdges (  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual Iterator<node>* tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getNonDefaultValuatedNodes (  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual std::string tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getTypename (  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
static void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::initFactory (  )  [inline, static]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual AbstractProperty<Tnode,Tedge,TPROPERTY>& tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::operator= ( AbstractProperty< Tnode, Tedge, TPROPERTY > &  prop  )  [inline, virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setAllEdgeDataMemValue ( const DataMem v  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual bool tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setAllEdgeStringValue ( const std::string &  v  )  [virtual]

Implements tlp::PropertyInterface.

Reimplemented in tlp::GraphProperty.

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setAllEdgeValue ( const typename Tedge::RealType &  v  ) 

Set the value of all edges and notify the observers

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setAllNodeDataMemValue ( const DataMem v  )  [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual bool tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setAllNodeStringValue ( const std::string &  v  )  [virtual]

Implements tlp::PropertyInterface.

Reimplemented in tlp::GraphProperty.

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setAllNodeValue ( const typename Tnode::RealType &  v  ) 

Set the value of all nodes and notify the observers

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setEdgeDataMemValue ( const edge  e,
const DataMem v 
) [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual bool tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setEdgeStringValue ( const edge  e,
const std::string &  v 
) [virtual]

Implements tlp::PropertyInterface.

Reimplemented in tlp::GraphProperty.

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setEdgeValue ( const edge  e,
const typename Tedge::RealType &  v 
)

Set the value of an edge and notify the observers of a modification. Warning : When using computed property (plug-in), if one sets the value of a edge e, the plug-in won't be call for e.

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setNodeDataMemValue ( const node  n,
const DataMem v 
) [virtual]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
virtual bool tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setNodeStringValue ( const node  n,
const std::string &  v 
) [virtual]

Implements tlp::PropertyInterface.

Reimplemented in tlp::GraphProperty.

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setNodeValue ( const node  n,
const typename Tnode::RealType &  v 
)

Set the value of a node n and notify the observers of a modification. Warning : When using computed property (plug-in), if one sets the value of a node n, the plug-in won't be call for n.


Friends And Related Function Documentation

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
friend class GraphView [friend]

Member Data Documentation

template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
bool tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::circularCall [protected]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
Tedge::RealType tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::edgeDefaultValue [protected]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
MutableContainer<typename Tedge::RealType> tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::edgeProperties [protected]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
TLP_SCOPE TemplateFactory< PropertyFactory<TPROPERTY>, TPROPERTY, PropertyContext >* tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::factory [static]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
Graph* tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::graph [protected]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
Tnode::RealType tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::nodeDefaultValue [protected]
template<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm>
MutableContainer<typename Tnode::RealType> tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::nodeProperties [protected]


Tulip Software by LaBRI Visualization Team    2001 - 2010