ardour
graphnode.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2000 Paul Davis
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 
18 */
19 
20 
21 #ifndef __ardour_graphnode_h__
22 #define __ardour_graphnode_h__
23 
24 #include <list>
25 #include <set>
26 #include <vector>
27 
28 #include <boost/shared_ptr.hpp>
29 
30 namespace ARDOUR
31 {
32 
33 class Graph;
34 class GraphNode;
35 
37 typedef std::set< node_ptr_t > node_set_t;
38 typedef std::list< node_ptr_t > node_list_t;
39 
42 {
43  public:
45  virtual ~GraphNode();
46 
47  void prep( int chain );
48  void dec_ref();
49  void finish( int chain );
50 
51  virtual void process();
52 
53  private:
54  friend class Graph;
55 
57  node_set_t _activation_set[2];
58 
60 
61  gint _refcount;
63  gint _init_refcount[2];
64 };
65 
66 }
67 
68 #endif
boost::shared_ptr< Graph > _graph
Definition: graphnode.h:59
Definition: amp.h:29
LIBARDOUR_API uint64_t Graph
Definition: graphnode.h:54
boost::shared_ptr< GraphNode > node_ptr_t
Definition: graph.h:48
#define LIBARDOUR_API
std::list< node_ptr_t > node_list_t
Definition: graph.h:52
A node in the hierarchical graph that represents a multiplicatable export item.
std::set< node_ptr_t > node_set_t
Definition: graph.h:53