This class is used to store a property of a graph. It implements PropertyInterface and add new methods to deal with two distinct type of values :
More...
#include <AbstractProperty.h>
List of all members.
Classes |
class | MetaValueCalculator |
| This class is used to delegate the computation of the values associated to meta nodes or edges. More...
|
Public Member Functions |
| AbstractProperty (Graph *, std::string n="") |
Tnode::RealType | getNodeDefaultValue () const |
| Returns the default node value of the property.
|
Tedge::RealType | getEdgeDefaultValue () const |
| Returns the default edge value of the property.
|
tlp::StoredType< typename
Tnode::RealType >
::ReturnedConstValue | getNodeValue (const node n) const |
| Returns the value associated with the node n in this property. If there is no value, it returns the default ndoe value.
|
tlp::StoredType< typename
Tedge::RealType >
::ReturnedConstValue | getEdgeValue (const edge e) const |
| Returns the value associated to the edge e in this property. If there is no value, it returns the default edge value.
|
virtual void | setNodeValue (const node n, const typename Tnode::RealType &v) |
| Sets the value of a node and notify the observers of a modification.
|
virtual void | setEdgeValue (const edge e, const typename Tedge::RealType &v) |
| Set the value of an edge and notify the observers of a modification.
|
virtual void | setAllNodeValue (const typename Tnode::RealType &v) |
| Sets the value of all nodes and notify the observers.
|
virtual void | setAllEdgeValue (const typename Tedge::RealType &v) |
| Sets the value of all edges and notify the observers.
|
virtual void | erase (const node n) |
| Resets the value of a node to the default value.
|
virtual void | erase (const edge e) |
| Resets the value of an edge to the default value.
|
virtual AbstractProperty
< Tnode, Tedge, TPROPERTY > & | operator= (AbstractProperty< Tnode, Tedge, TPROPERTY > &prop) |
virtual std::string | getNodeDefaultStringValue () const |
virtual std::string | getEdgeDefaultStringValue () const |
virtual std::string | getNodeStringValue (const node n) const |
virtual std::string | getEdgeStringValue (const edge e) const |
virtual bool | setNodeStringValue (const node inN, const std::string &inV) |
virtual bool | setEdgeStringValue (const edge inE, const std::string &inV) |
virtual bool | setAllNodeStringValue (const std::string &inV) |
virtual bool | setAllEdgeStringValue (const std::string &inV) |
virtual tlp::Iterator< node > * | getNonDefaultValuatedNodes (const Graph *g=NULL) const |
| Returns an iterator on all nodes whose value is different from the default value. When the pointer to the graph is not NULL, only the nodes owned by this graph are returned by the iterator.
|
virtual tlp::Iterator< edge > * | getNonDefaultValuatedEdges (const Graph *g=NULL) const |
| Returns an iterator on all edges whose value is different from the default value. When the pointer to the graph is not NULL, only the edges owned by this graph are returned by the iterator.
|
virtual void | copy (const node destination, const node source, PropertyInterface *property, bool ifNotDefault=false) |
| Copies the value hold by a property on a node to another node on this property.
|
virtual void | copy (const edge destination, const edge source, PropertyInterface *property, bool ifNotDefault=false) |
| Copies the value hold by a property on an edge to another edge on this property.
|
virtual void | copy (PropertyInterface *property) |
| Copies the values hold by a property on this property.
|
virtual DataMem * | getNodeDefaultDataMemValue () const |
virtual DataMem * | getEdgeDefaultDataMemValue () const |
virtual DataMem * | getNodeDataMemValue (const node n) const |
virtual DataMem * | getEdgeDataMemValue (const edge e) const |
virtual DataMem * | getNonDefaultDataMemValue (const node n) const |
virtual DataMem * | getNonDefaultDataMemValue (const edge e) const |
virtual void | setNodeDataMemValue (const node n, const DataMem *v) |
virtual void | setEdgeDataMemValue (const edge e, const DataMem *v) |
virtual void | setAllNodeDataMemValue (const DataMem *v) |
virtual void | setAllEdgeDataMemValue (const DataMem *v) |
virtual void | computeMetaValue (node n, Graph *sg, Graph *mg) |
virtual void | computeMetaValue (edge e, tlp::Iterator< edge > *itE, Graph *mg) |
virtual void | setMetaValueCalculator (PropertyInterface::MetaValueCalculator *mvCalc) |
int | compare (const node n1, const node n2) const |
| Default implementation of PropertyInterface::compare(node n1,node n2)
|
int | compare (const edge e1, const edge e2) const |
| Default implementation of PropertyInterface::compare(edge e1,edge e2)
|
virtual | ~PropertyInterface () |
virtual PropertyInterface * | clonePrototype (Graph *, const std::string &)=0 |
virtual std::string | getTypename () const =0 |
const std::string & | getName () const |
tlp::Graph * | getGraph () |
MetaValueCalculator * | getMetaValueCalculator () |
void | addPropertyObserver (PropertyObserver *pObs) |
void | removePropertyObserver (PropertyObserver *pObs) |
unsigned int | countPropertyObservers () const |
| Observable () |
_DEPRECATED | Observable (bool) |
virtual | ~Observable () |
tlp::Iterator< Observable * > * | getOnlookers () const |
| return an Iterator on all Onlookers
|
tlp::Iterator< Observable * > * | getObservables () const |
virtual void | treatEvents (const std::vector< Event > &events) |
virtual void _DEPRECATED | update (std::set< Observable * >::iterator, std::set< Observable * >::iterator) |
virtual void _DEPRECATED | observableDestroyed (Observable *) |
virtual void | treatEvent (const Event &) |
void | addObserver (Observable *const obs) const |
| use for old observer tulip compatibility
|
void | addListener (Observable *const obs) const |
| use for old observer tulip compatibility
|
void | removeOnlooker (const Observable &, OLOEDGETYPE type) const |
| remove an Observer/Listener of the observable
|
void | removeObserver (Observable *const obs) const |
| use for old observer tulip compatibility
|
void | removeListener (Observable *const obs) const |
void _DEPRECATED | notifyObservers () |
| use for old observer tulip compatibility
|
unsigned int | countObservers () const |
unsigned int | countOnLookers () const |
unsigned int | countListeners () const |
bool | hasOnlookers () const |
| remove all Observer/Listener of the observable
|
tlp::node | getNode () const |
| return the node representing that OLOObject in the OLOGraph
|
unsigned int | getSent () const |
| return the number of sent nofication
|
unsigned int | getReceived () const |
| return the number of received nofication
|
Detailed Description
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
class tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >
This class is used to store a property of a graph. It implements PropertyInterface and add new methods to deal with two distinct type of values :
- Tnode node value
- Tedge edge value
An AbstractProperty can be connected or not to a Algorithm. 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. An AbstractProperty is an Observable (through PropertyInterface), so it can be observed by others objects.
Constructor & Destructor Documentation
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Member Function Documentation
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Enable to clone part of sub_class.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Sets a computed value for the meta node mN pointing to the sub-graph sg mg is the graph owning the meta node
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Sets a computed value for the meta edge mE representing the edges from the iterator itE. mg is the graph owning the meta edge.
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Copies the value hold by a property on a node to another node on this property.
- Parameters:
-
destination | The node to copy the value to. |
source | The node to copy the value from. |
property | The property holding the value to copy. |
ifNotDefault | Whether to ignore default-valuated nodes or not. Defaults to false. |
- Returns:
- void
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Copies the value hold by a property on an edge to another edge on this property.
- Parameters:
-
destination | The edge to copy the value to. |
source | The edge to copy the value from. |
property | The property holding the value to copy. |
ifNotDefault | Whether to ignore default-valuated nodes or not. Defaults to false. |
- Returns:
- void
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Copies the values hold by a property on this property.
- Parameters:
-
- Returns:
- void
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Resets the value of a node to the default value.
- Parameters:
-
n | The node to reset the value of. |
- Returns:
- void
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Resets the value of an edge to the default value.
- Parameters:
-
e | The edge to reset the value of. |
- Returns:
- void
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Returns a pointer to a DataMem structure embedding the edge registered value WARNING: it is of the caller responsibility to delete the returned structure.
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Returns a pointer to a DataMem structure embedding the edge default value WARNING: the caller have the responsibility to delete the returned structure.
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
virtual std::string tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getEdgeDefaultStringValue |
( |
| ) |
const |
|
inlinevirtual |
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Returns the default edge value of the property.
- Returns:
- :RealType The default value applied to edges.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
tlp::StoredType<typename Tedge::RealType>::ReturnedConstValue tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getEdgeValue |
( |
const edge |
e | ) |
const |
Returns the value associated to the edge e in this property. If there is no value, it returns the default edge value.
- Parameters:
-
e | The edge for which we want to get the value of the property. |
- Returns:
- :StoredType< Tedge::RealType >::ReturnedConstValue The value of the property for this edge.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Returns a pointer to a DataMem structure embedding the node registered value WARNING: it is of the caller responsibility to delete the returned structure.
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Returns a pointer to a DataMem structure embedding the node default value WARNING: it is of the caller responsibility to delete the returned structure.
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
virtual std::string tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getNodeDefaultStringValue |
( |
| ) |
const |
|
inlinevirtual |
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Returns the default node value of the property.
- Returns:
- :RealType The default value applied to nodes.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
tlp::StoredType<typename Tnode::RealType>::ReturnedConstValue tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::getNodeValue |
( |
const node |
n | ) |
const |
Returns the value associated with the node n in this property. If there is no value, it returns the default ndoe value.
- Parameters:
-
n | The node for which we want to get the value of the property. |
- Returns:
- :StoredType< Tnode::RealType >::ReturnedConstValue The value of the property for this node.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Returns a NULL pointer if the given node registered value is the default else returns a pointer to a DataMem structure embedding the value WARNING: it is of the caller responsibility to delete the returned structure.
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Returns a NULL pointer if the given edge registered value is the default else returns a pointer to a DataMem structure embedding the value. WARNING: it is of the caller responsibility to delete the returned structure.
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Returns an iterator on all edges whose value is different from the default value. When the pointer to the graph is not NULL, only the edges owned by this graph are returned by the iterator.
- Warning:
- Ownership of the iterator belongs to the caller, i.e. the caller must delete the operator.
- Parameters:
-
g | If not NULL, only iterate on edges from this Graph. Defaults to NULL. |
- Returns:
- :Iterator< tlp::node >* A new Iterator on edges whose value is not default.
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Returns an iterator on all nodes whose value is different from the default value. When the pointer to the graph is not NULL, only the nodes owned by this graph are returned by the iterator.
- Warning:
- Ownership of the iterator belongs to the caller, i.e. the caller must delete the operator.
- Parameters:
-
g | If not NULL, only iterate on nodes from this Graph. Defaults to NULL. |
- Returns:
- :Iterator< tlp::node >* A new Iterator on nodes whose value is not default.
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Clears all edges registered values, and set a new edge default value using the value embedded in the pointed DataMem structure.
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
virtual bool tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setAllEdgeStringValue |
( |
const std::string & |
v | ) |
|
|
inlinevirtual |
Clears all edges registered values, and sets a new edge default value in converting the given string representation of a value. Returns true if the given string representation has been successfully converted to a value, false otherwise.
Implements tlp::PropertyInterface.
Reimplemented in tlp::GraphProperty.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
virtual void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setAllEdgeValue |
( |
const typename Tedge::RealType & |
v | ) |
|
|
virtual |
Sets the value of all edges and notify the observers.
- Parameters:
-
v | The value to set to all edges. |
- Returns:
- void
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Clears all nodes registered values, and set a new node default value using the value embedded in the pointed DataMem structure.
Implements tlp::PropertyInterface.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
virtual bool tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setAllNodeStringValue |
( |
const std::string & |
v | ) |
|
|
inlinevirtual |
Clears all nodes registered values, and sets a new node default value in converting the given string representation of a value. Returns true if the given string representation has been successfully converted to a value, false otherwise.
Implements tlp::PropertyInterface.
Reimplemented in tlp::GraphProperty.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
virtual void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setAllNodeValue |
( |
const typename Tnode::RealType & |
v | ) |
|
|
virtual |
Sets the value of all nodes and notify the observers.
- Parameters:
-
v | The value to set to all nodes. |
- Returns:
- void
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Registers a new value for the given edge in converting the given string representation. Returns true if the given string representation has been successfully converted to a value, false otherwise.
Implements tlp::PropertyInterface.
Reimplemented in tlp::GraphProperty.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
virtual void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setEdgeValue |
( |
const edge |
e, |
|
|
const typename Tedge::RealType & |
v |
|
) |
| |
|
virtual |
Set the value of an edge and notify the observers of a modification.
- Parameters:
-
e | The edge to set the value of. |
v | The value to affect for this edge. |
- Returns:
- void
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Registers a new value for the given node in converting the given string representation. Returns true if the given string representation has been successfully converted to a value, false otherwise.
Implements tlp::PropertyInterface.
Reimplemented in tlp::GraphProperty.
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
virtual void tlp::AbstractProperty< Tnode, Tedge, TPROPERTY >::setNodeValue |
( |
const node |
n, |
|
|
const typename Tnode::RealType & |
v |
|
) |
| |
|
virtual |
Sets the value of a node and notify the observers of a modification.
- Parameters:
-
n | The node to set the value of. |
v | The value to affect for this node. |
- Returns:
- void
Friends And Related Function Documentation
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
Member Data Documentation
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
template<class Tnode, class Tedge, class TPROPERTY = Algorithm>
|