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