summaryrefslogtreecommitdiff
path: root/project2/common/iHaveSubTasks.h
blob: c2d20224b8661c69617b819c841c2806ac6ac13f (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(const xmlpp::Element * p);
		IHaveSubTasks(const std::string & n);
		virtual ~IHaveSubTasks();

		virtual void execute() const = 0;
		Tasks normal;

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

#endif