~ubuntu-branches/ubuntu/oneiric/dammit/oneiric

« back to all changes in this revision

Viewing changes to dammit/visitor.hpp

  • Committer: Bazaar Package Importer
  • Author(s): Simon Richter
  • Date: 2008-05-25 18:09:39 UTC
  • Revision ID: james.westby@ubuntu.com-20080525180939-iguzr0jb41w5s1oe
Tags: upstream-0~preview1
ImportĀ upstreamĀ versionĀ 0~preview1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright 2008 Simon Richter <Simon.Richter@hogyros.de>
 
2
 *
 
3
 * Released under the GNU General Public Licence version 3.
 
4
 */
 
5
 
 
6
#include "intrusive_ptr.hpp"
 
7
 
 
8
#ifndef dammit_visitor_hpp_
 
9
#define dammit_visitor_hpp_ 1
 
10
 
 
11
namespace dammit {
 
12
 
 
13
class node;
 
14
 
 
15
class parallel_node;
 
16
 
 
17
class project_node;
 
18
class configuration_node;
 
19
 
 
20
class input_node;
 
21
class temporary_node;
 
22
class output_node;
 
23
 
 
24
class tool_node;
 
25
class environment_node;
 
26
 
 
27
class action_node;
 
28
 
 
29
class visitor
 
30
{
 
31
public:
 
32
        virtual ~visitor(void) throw() { }
 
33
 
 
34
        virtual intrusive_ptr<node> visit(parallel_node &) = 0;
 
35
 
 
36
        virtual intrusive_ptr<node> visit(project_node &) = 0;
 
37
        virtual intrusive_ptr<node> visit(configuration_node &) = 0;
 
38
 
 
39
        virtual intrusive_ptr<node> visit(input_node &) = 0;
 
40
        virtual intrusive_ptr<node> visit(temporary_node &) = 0;
 
41
        virtual intrusive_ptr<node> visit(output_node &) = 0;
 
42
 
 
43
        virtual intrusive_ptr<node> visit(tool_node &) = 0;
 
44
        virtual intrusive_ptr<node> visit(environment_node &) = 0;
 
45
 
 
46
        virtual intrusive_ptr<node> visit(action_node &) = 0;
 
47
};
 
48
 
 
49
}
 
50
 
 
51
#endif