All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WebLoadRequestCompletionCallback.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Web.h"
6 
7 namespace Eegeo
8 {
9  namespace Web
10  {
11  // TODO: move to using ICallback1/TCallback1
13  {
14  public:
16  virtual void operator()(IWebResponse& webResponse) = 0;
17  };
18 
19  template <class T> class
21  {
22  public:
23  TWebLoadRequestCompletionCallback(T* context, void (T::*callback)(IWebResponse& webResponse))
24  : m_callback(callback)
25  , m_context(context)
26  {
27  }
28 
29  virtual void operator()(IWebResponse& webResponse)
30  {
31  (*m_context.*m_callback)(webResponse);
32  }
33 
34  private:
35  void (T::*m_callback)(IWebResponse& webResponse);
36  T* m_context;
37  };
38  }
39 }