summaryrefslogtreecommitdiff
path: root/project2/common/iHaveSubTasks.h
blob: ee6d17310352ca20f3f02287aff25e94155fad3d (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 "noOutputExecute.h"

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

		IHaveSubTasks(const xmlpp::Element * p);
		IHaveSubTasks(const std::string & n);
		virtual ~IHaveSubTasks();

		void loadComplete(const CommonObjects*);
		virtual void execute() const = 0;
		Tasks normal;

	protected:
		void run(const Tasks &) const;
};

#endif