aGrUM  0.14.2
mixedGraphListener.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2005 by Christophe GONZALES and Pierre-Henri WUILLEMIN *
3  * {prenom.nom}_at_lip6.fr *
4  * *
5  * This program is free software; you can redistribute it and/or modify *
6  * it under the terms of the GNU General Public License as published by *
7  * the Free Software Foundation; either version 2 of the License, or *
8  * (at your option) any later version. *
9  * *
10  * This program is distributed in the hope that it will be useful, *
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13  * GNU General Public License for more details. *
14  * *
15  * You should have received a copy of the GNU General Public License *
16  * along with this program; if not, write to the *
17  * Free Software Foundation, Inc., *
18  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19  ***************************************************************************/
27 
28 #ifdef GUM_NO_INLINE
30 #endif // GUM_NOINLINE
31 
32 namespace gum {
33 
35  GUM_CONS_CPY(MixedGraphListener);
36  GUM_ERROR(OperationNotAllowed, "No copy constructor for MixedGraphListener");
37  }
38 
40  GUM_OP_CPY(MixedGraphListener);
41  GUM_ERROR(OperationNotAllowed, "No copy operator for MixedGraphListener");
42  }
43 
45  if (!g) {
46  GUM_ERROR(OperationNotAllowed, "A graph listener need a graph to listen to");
47  }
48 
49  GUM_CONSTRUCTOR(MixedGraphListener);
50  _graph = g;
51 
53  (*_graph), onNodeAdded, (*this), MixedGraphListener::whenNodeAdded);
55  (*_graph), onNodeDeleted, (*this), MixedGraphListener::whenNodeDeleted);
56  GUM_CONNECT((*_graph), onArcAdded, (*this), MixedGraphListener::whenArcAdded);
58  (*_graph), onArcDeleted, (*this), MixedGraphListener::whenArcDeleted);
60  (*_graph), onEdgeAdded, (*this), MixedGraphListener::whenEdgeAdded);
62  (*_graph), onEdgeDeleted, (*this), MixedGraphListener::whenEdgeDeleted);
63  }
64 
66 
67 } // namespace gum
virtual void whenEdgeAdded(const void *src, NodeId id1, NodeId id2)=0
the action to take when a new edge is inserted into the graph
MixedGraph * _graph
the graph to listen to
MixedGraphListener & operator=(const MixedGraphListener &d)
copy operator (for the moment, this operation is forbidden)
virtual void whenArcAdded(const void *src, NodeId from, NodeId to)=0
the action to take when a new arc is inserted into the graph
gum is the global namespace for all aGrUM entities
Definition: agrum.h:25
virtual void whenEdgeDeleted(const void *src, NodeId from, NodeId to)=0
the action to take when an edge has just been removed from the graph
Inline implementation fo base classes for mixed graphs listener.
Abstract Base class for all mixed Graph Listener.
virtual void whenNodeAdded(const void *src, NodeId id)=0
the action to take when a new node is inserted into the graph
MixedGraphListener(MixedGraph *g)
default constructor
#define GUM_CONNECT(sender, signal, receiver, target)
Definition: listener.h:96
virtual void whenNodeDeleted(const void *src, NodeId id)=0
the action to take when a node has just been removed from the graph
virtual void whenArcDeleted(const void *src, NodeId from, NodeId to)=0
the action to take when an arc has just been removed from the graph
Base classes for mixed graph listeners.
#define GUM_ERROR(type, msg)
Definition: exceptions.h:52
Base class for mixed graphs.
Definition: mixedGraph.h:124