All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
CommandCallback.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 namespace Eegeo
6 {
7  namespace Debug
8  {
9  namespace Commands
10  {
12  {
13  public:
14  virtual void operator()() = 0;
15  };
16 
17  template <class T> class TCommandCallback : public ICommandCallback
18  {
19  private:
20  void (T::*m_callback)();
21  T* m_context;
22  public:
23  TCommandCallback(T* context, void (T::*callback)())
24  : m_callback(callback)
25  , m_context(context)
26  {
27  }
28 
29  virtual void operator()()
30  {
31  (*m_context.*m_callback)();
32  }
33  };
34  }
35  }
36 }