All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RouteSimulationSessionCallback.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Routes.h"
6 
7 namespace Eegeo
8 {
9  namespace Routes
10  {
11  namespace Simulation
12  {
14  {
15  public:
16  virtual void operator()(const RouteSimulationSession* session) = 0;
17  };
18 
20  {
21  private:
22  void (T::*m_callback)(const RouteSimulationSession* session);
23  T* m_context;
24  public:
25  TRouteSimulationSessionCallback(T* context, void (T::*callback)(const RouteSimulationSession* session))
26  : m_callback(callback)
27  , m_context(context)
28  {
29 
30  }
31 
32  virtual void operator()(const RouteSimulationSession* session)
33  {
34  (*m_context.*m_callback)(session);
35  }
36  };
37  }
38  }
39 }