summaryrefslogtreecommitdiff
path: root/project2/common/iHaveSubTasks.h
blob: 433899dc0b7577fd727606562ea7d1d4f14fe121 (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
25
#ifndef HASSUBTASKS_H
#define HASSUBTASKS_H

#include "task.h"
#include "scriptStorage.h"
#include <visibility.h>

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

		IHaveSubTasks(ScriptNodePtr p);
		virtual ~IHaveSubTasks();

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

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

#endif