summaryrefslogtreecommitdiff
path: root/project2/common/iHaveSubTasks.h
blob: d13a890fceb1ed74663ed6265eca7141197c017b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef HASSUBTASKS_H
#define HASSUBTASKS_H

#include "noOutputExecute.h"

/// Base class for Project2 compoments that perform actions, but product no output
class IHaveSubTasks : public NoOutputExecute {
	public:
		typedef ANONORDEREDSTORAGEOF(NoOutputExecute) Tasks;

		IHaveSubTasks(ScriptNodePtr p);
		IHaveSubTasks(const std::string & n);
		virtual ~IHaveSubTasks();

		virtual void execute(ExecContext * ec) const = 0;
		Tasks normal;

	protected:
		void run(const Tasks &, ExecContext * ec) const;
};

#endif