GameApi 28
Library used by GameApi Builder tool
Loading...
Searching...
No Matches
Execute.hh
Go to the documentation of this file.
1
2template<class T>
3class Execute
4{
5public:
6 virtual T get() const=0;
7};
8
9template<class T>
10class EmptyExecute : public Execute<T>
11{
12public:
13 EmptyExecute(T t) : t(t) { }
14 virtual T get() const { return t; }
15private:
16 T t;
17};
18template<class T, class K>
19class MapExecute : public Execute<K>
20{
21public:
22 MapExecute(Execute<T> &t, K (*fptr)(T)) : t(t), fptr(fptr) { }
23 virtual K get() const
24 {
25 return fptr(t.get());
26 }
27private:
28 Execute<T> &t;
29 K (*fptr)(T);
30};
31
32template<class T>
33class LoopExecute : public Execute<T>
34{
35public:
36 LoopExecute(Execute<T> &e, T (*fptr)(T), int count) : e(e), fptr(fptr), count(count) { }
37 T get() const
38 {
39 T val = e.get();
40 for(int i=0;i<count;i++)
41 {
42 val = fptr(val);
43 }
44 return val;
45 }
46private:
48 T (*fptr)(T);
49 int count;
50}
Env e
Definition Common.cc:2
virtual T get() const
Definition Execute.hh:14
EmptyExecute(T t)
Definition Execute.hh:13
Definition Execute.hh:4
virtual T get() const =0
LoopExecute(Execute< T > &e, T(*fptr)(T), int count)
Definition Execute.hh:36
T get() const
Definition Execute.hh:37
virtual K get() const
Definition Execute.hh:23
MapExecute(Execute< T > &t, K(*fptr)(T))
Definition Execute.hh:22
Definition FreeType2.cc:432
Definition GameApi.h:42