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