Overview     Modules     Class Hierarchy     Classes     Members  

Interface for a graph. More...

#include <Graph.h>

Inheritance diagram for tlp::Graph:
Collaboration diagram for tlp::Graph:

List of all members.

Public Member Functions

 Graph ()
virtual ~Graph ()
bool applyAlgorithm (const std::string &algorithm, std::string &errorMessage, DataSet *dataSet=NULL, PluginProgress *progress=NULL)
 Applies an algorithm plugin, identified by its name. Algorithm plugins are subclasses of the tlp::Algorithm interface. Parameters are transmitted to the algorithm trough the DataSet. To determine a plugin's parameters, you can either:
virtual void clear ()=0
 Removes all nodes, edges and sub-graphs of the supergraph.
virtual GraphaddSubGraph (BooleanProperty *selection=NULL, unsigned int id=0, std::string name="unnamed")=0
 Creates and returns a new sub-graph of this graph.
GraphaddSubGraph (std::string name)
 Creates and returns a new named sub-graph of this graph.
GraphaddCloneSubGraph (std::string name="unnamed")
 Creates and returns a subgraph of this graph that contains all its elements.
GraphinducedSubGraph (const std::set< node > &nodeSet, Graph *parentSubGraph=NULL)
virtual void delSubGraph (Graph *)=0
virtual void delAllSubGraphs (Graph *)=0
virtual GraphgetSuperGraph () const =0
virtual GraphgetRoot () const =0
virtual void setSuperGraph (Graph *)=0
virtual Iterator< Graph * > * getSubGraphs () const =0
virtual bool isSubGraph (const Graph *sg) const =0
virtual bool isDescendantGraph (const Graph *sg) const =0
virtual GraphgetSubGraph (unsigned int id) const =0
virtual GraphgetSubGraph (const std::string &name) const =0
virtual GraphgetDescendantGraph (unsigned int id) const =0
virtual GraphgetDescendantGraph (const std::string &name) const =0
virtual node addNode ()=0
virtual void addNodes (unsigned int nbNodes, std::vector< node > &addedNodes)=0
virtual void addNode (const node)=0
virtual void addNodes (Iterator< node > *nodes)=0
virtual void delNode (const node n, bool deleteInAllGraphs=false)=0
virtual void delNodes (Iterator< node > *itN, bool deleteInAllGraphs=false)=0
virtual edge addEdge (const node, const node)=0
virtual void addEdges (const std::vector< std::pair< node, node > > &edges, std::vector< edge > &addedEdges)=0
virtual void addEdge (const edge)=0
virtual void addEdges (Iterator< edge > *edges)=0
virtual void delEdge (const edge e, bool deleteInAllGraphs=false)=0
virtual void delEdges (Iterator< edge > *itE, bool deleteInAllGraphs=false)=0
virtual void setEdgeOrder (const node, const std::vector< edge > &)=0
virtual void swapEdgeOrder (const node, const edge, const edge)=0
virtual void setSource (const edge, const node)=0
 Sets the source of an existing edge.
virtual void setTarget (const edge, const node)=0
 Sets the target of an existing edge.
virtual void setEnds (const edge, const node source, const node target)=0
 Sets both the source and target of an existing edge.
virtual void reverse (const edge)=0
virtual void reserveNodes (unsigned int nbNodes)=0
virtual void reserveEdges (unsigned int nbEdges)=0
virtual tlp::node getSource () const
 Finds the first node whose input degree equals 0.
virtual node getOneNode () const =0
 Returns an existing node of the graph.
virtual Iterator< node > * getNodes () const =0
 Returns an iterator on the nodes.
virtual node getInNode (const node, unsigned int) const =0
 Returns the ith predecessor of a node.
virtual Iterator< node > * getInNodes (const node) const =0
 Returns an iterator on the predecessors of a node.
virtual node getOutNode (const node, unsigned int) const =0
 Returns the ith successor of a node.
virtual Iterator< node > * getOutNodes (const node) const =0
 Returns an iterator on the successors of a node.
virtual Iterator< node > * getInOutNodes (const node) const =0
 Returns an iterator on the neighbours of a node.
virtual GraphgetNodeMetaInfo (const node) const =0
 Returns the underlying graph of a meta node.
virtual Iterator< edge > * getEdges () const =0
 Returns an iterator on the edges.
virtual edge getOneEdge () const =0
 Returns an existing edge of the graph.
virtual Iterator< edge > * getOutEdges (const node) const =0
 Returns an iterator on the outgoing edges of a node.
virtual Iterator< edge > * getInOutEdges (const node) const =0
 Returns an iterator on the incoming and outgoing edges of a node.
virtual Iterator< edge > * getInEdges (const node) const =0
 Returns an iterator on the incoming edges of a node.
virtual Iterator< edge > * getEdgeMetaInfo (const edge) const =0
 Returns an iterator on the underlying edges of a meta edge.
unsigned int getId () const
 Returns the graph's id. This id is unique.
virtual unsigned int numberOfNodes () const =0
 Returns the number of nodes in the graph.
virtual unsigned int numberOfEdges () const =0
 Returns the number of edges in the graph.
virtual unsigned int deg (const node) const =0
 Returns the degree of a node.
virtual unsigned int indeg (const node) const =0
 Returns the incoming degree of a node.
virtual unsigned int outdeg (const node) const =0
 Returns the outgoing degree of a node.
virtual node source (const edge) const =0
 Returns the source of the edge.
virtual node target (const edge) const =0
 Returns the target of the edge.
virtual const std::pair< node,
node > & 
ends (const edge) const =0
virtual node opposite (const edge, const node) const =0
 Returns the opposite node for n in the edge e.
virtual bool isElement (const node) const =0
 Returns true if the node is an element of the graph.
virtual bool isMetaNode (const node) const =0
 Returns true if the node is a meta node.
virtual bool isElement (const edge) const =0
 Returns true if the edge is an element of the graph.
virtual bool isMetaEdge (const edge) const =0
 Returns true if the edge is a meta edge.
virtual edge existEdge (const node source, const node target, bool directed=true) const =0
const DataSetgetAttributes () const
 Returns graph attributes.
template<typename ATTRIBUTETYPE >
bool getAttribute (const std::string &name, ATTRIBUTETYPE &value) const
template<typename ATTRIBUTETYPE >
_DEPRECATED ATTRIBUTETYPE getAttribute (const std::string &name) const
 Deprecated version of the previous method.
DataTypegetAttribute (const std::string &name) const
 Untyped accessor returning a copy.
template<typename ATTRIBUTETYPE >
void setAttribute (const std::string &name, const ATTRIBUTETYPE &value)
 Sets an attribute of the graph.
void setAttribute (const std::string &name, const DataType *value)
 Sets attritute from an untyped value.
void removeAttribute (const std::string &name)
 Removes an existing attribute.
bool attributeExist (const std::string &name)
 Returns if the attribute exist.
virtual void addLocalProperty (const std::string &name, PropertyInterface *prop)=0
template<typename PropertyType >
PropertyType * getLocalProperty (const std::string &name)
PropertyInterfacegetLocalProperty (const std::string &propertyName, const std::string &propertyType)
bool applyPropertyAlgorithm (const std::string &algorithm, PropertyInterface *result, std::string &msg, PluginProgress *progress=NULL, DataSet *data=NULL)
template<typename PropertyType >
bool computeProperty (const std::string &algorithm, PropertyType *result, std::string &msg, PluginProgress *progress=NULL, DataSet *data=NULL)
template<typename PropertyType >
PropertyType * getProperty (const std::string &name)
virtual PropertyInterfacegetProperty (const std::string &name) const =0
PropertyInterfacegetProperty (const std::string &propertyName, const std::string &propertyType)
virtual bool existProperty (const std::string &name) const =0
virtual bool existLocalProperty (const std::string &name) const =0
virtual void delLocalProperty (const std::string &name)=0
virtual Iterator< std::string > * getLocalProperties () const =0
virtual Iterator< std::string > * getInheritedProperties () const =0
virtual Iterator< std::string > * getProperties () const =0
virtual Iterator
< PropertyInterface * > * 
getLocalObjectProperties () const =0
virtual Iterator
< PropertyInterface * > * 
getInheritedObjectProperties () const =0
virtual Iterator
< PropertyInterface * > * 
getObjectProperties () const =0
void addGraphObserver (GraphObserver *) const
unsigned int countGraphObservers () const
void removeGraphObserver (GraphObserver *) const
virtual void push (bool unpopAllowed=true, std::vector< PropertyInterface * > *propertiesToPreserveOnPop=NULL)=0
virtual void pop (bool unpopAllowed=true)=0
virtual void unpop ()=0
virtual bool canPop ()=0
virtual bool canUnpop ()=0
virtual bool canPopThenUnpop ()=0
node createMetaNode (const std::set< node > &nodeSet, bool multiEdges=true, bool delAllEdge=true)
void createMetaNodes (Iterator< Graph * > *itS, Graph *quotientGraph, std::vector< node > &metaNodes)
node createMetaNode (Graph *subGraph, bool multiEdges=true, bool delAllEdge=true)
void openMetaNode (node n, bool updateProperties=true)
virtual GraphgetNthSubGraph (unsigned int n) const
virtual unsigned int numberOfSubGraphs () const =0
virtual unsigned int numberOfDescendantGraphs () const =0
virtual void setName (const std::string &name)=0
virtual std::string getName () const =0
- Public Member Functions inherited from tlp::Observable
 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
- Public Member Functions inherited from tlp::OLOObject
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

Protected Member Functions

virtual DataSetgetNonConstAttributes ()=0
virtual node restoreNode (node)=0
virtual void restoreNodes (const std::vector< node > &nodes)=0
virtual edge restoreEdge (edge, node source, node target)=0
virtual void restoreEdges (const std::vector< edge > &edges, const std::vector< std::pair< node, node > > &ends)=0
virtual void removeNode (const node)=0
virtual void removeEdge (const edge)=0
virtual bool canDeleteProperty (Graph *g, PropertyInterface *prop)
virtual void removeSubGraph (Graph *)=0
virtual void clearSubGraphs ()=0
virtual void restoreSubGraph (Graph *)=0
virtual void setSubGraphToKeep (Graph *)=0
void notifyAddNode (const node n)
void notifyAddNode (Graph *, const node n)
void notifyAddEdge (const edge e)
void notifyAddEdge (Graph *, const edge e)
void notifyBeforeSetEnds (const edge e)
void notifyBeforeSetEnds (Graph *, const edge e)
void notifyAfterSetEnds (const edge e)
void notifyAfterSetEnds (Graph *, const edge e)
void notifyDelNode (const node n)
void notifyDelNode (Graph *, const node n)
void notifyDelEdge (const edge e)
void notifyDelEdge (Graph *, const edge e)
void notifyReverseEdge (const edge e)
void notifyReverseEdge (Graph *, const edge e)
void notifyAddSubGraph (const Graph *)
void notifyAddSubGraph (Graph *, const Graph *sg)
void notifyDelSubGraph (const Graph *)
void notifyDelSubGraph (Graph *, const Graph *sg)
void notifyAddLocalProperty (const std::string &)
void notifyAddLocalProperty (Graph *, const std::string &name)
void notifyBeforeDelLocalProperty (const std::string &)
void notifyAfterDelLocalProperty (const std::string &)
void notifyDelLocalProperty (Graph *, const std::string &name)
void notifyBeforeSetAttribute (const std::string &)
void notifyBeforeSetAttribute (Graph *, const std::string &name)
void notifyAfterSetAttribute (const std::string &)
void notifyAfterSetAttribute (Graph *, const std::string &name)
void notifyRemoveAttribute (const std::string &)
void notifyRemoveAttribute (Graph *, const std::string &name)
void notifyDestroy ()
 use for old observer tulip compatibility
void notifyDestroy (Graph *)
- Protected Member Functions inherited from tlp::Observable
void addOnlooker (const Observable &, OLOEDGETYPE type) const
 add an Observer/Listener to the observable
void sendEvent (const Event &)
 Enable to send an event to all Observer/Listener.
void observableDeleted ()
 Enable to send Event::DELETE before the deletion of subclass internal objects.
- Protected Member Functions inherited from tlp::OLOObject
 OLOObject ()
 OLOObject (const OLOObject &)
virtual ~OLOObject ()
OLOObjectoperator= (const OLOObject &)
tlp::Iterator< tlp::node > * getInObjects () const
 return an iterator on in objects (Observable), the iterator guarantee that all objects are alive (not deleted during hold or notify)
tlp::Iterator< tlp::node > * getOutObjects () const
 return an iterator on out objects (Listener/Observer), the iterator garantee that all objects are alive (not deleted during hold or notify)

Protected Attributes

unsigned int id
TLP_HASH_MAP< std::string,
tlp::PropertyInterface * > 
circularCalls

Friends

class GraphAbstract
class GraphUpdatesRecorder
class GraphDecorator
class PropertyManager

Additional Inherited Members

- Static Public Member Functions inherited from tlp::Observable
static void holdObservers ()
 start delay of events to all Observer
static void unholdObservers ()
 Send queued event to all Observer.
static void _DEPRECATED unholdObservers (bool)
static unsigned int observersHoldCounter ()
- Static Public Member Functions inherited from tlp::OLOObject
static OLOObjectgetObject (tlp::node n)
static bool isAlive (tlp::node n)
 Enables to test if the object represented by a node has been deleted. Outside a unhold/hold block or an update that function always return true.
static const tlp::VectorGraphgetOLOGraph ()
 Return a reference on the Observable/Listener/Observer graph.

Detailed Description

Interface for a graph.

The class Graph is the interface of a Graph in the Tulip Library.



Tulip Software by LaBRI Visualization Team    2001 - 2012