gatelib  2.1
g_signal_subscribers.h
1 #pragma once
2 
3 #include "g_cont_ref.h"
4 
5 namespace g
6 {
7 namespace signal
8 {
9 
10 template < class E > class function_subscriber_base : public E::Subscriber
11 {
12 public:
13  typedef typename E::SubscriberRef_t SubscriberRef_t;
14  typedef typename E::FunctionPointer_t FunctionPointer_t;
15 
16  static SubscriberRef_t create ( FunctionPointer_t sp , g::cont::AllocationPolicyAbstract* ap = g::cont::AllocationPolicyAbstract::get_FromStandardPolicy() )
17  {
19 
20  instance->functionPointer = sp;
21 
22  return instance;
23  }
24 
25  typename E::FunctionPointer_t functionPointer;
26 };
27 
28 template < class E , class T > class method_subscriber_base : public E::Subscriber
29 {
30 public:
31  typedef typename E::SubscriberRef_t SubscriberRef_t;
32  typedef typename E::template class_method<T>::Pointer_t MethodPointer_t;
33  typedef typename E::template method_subscriber<T> MethodSubscriber_t;
34 
35  static SubscriberRef_t create ( MethodPointer_t sp , T* ip , g::cont::AllocationPolicyAbstract* ap = g::cont::AllocationPolicyAbstract::get_FromStandardPolicy() )
36  {
38 
39  instance->methodPointer = sp;
40  instance->clsInstanceP = ip;
41 
42  return instance;
43  }
44 
45  MethodPointer_t methodPointer;
46  T* clsInstanceP;
47 };
48 
49 }//namespace signal
50 }//namespace g
51 
Definition: g_cont_AllocationPolicyAbstract.h:16
Definition: g.mthread.ThreadSimpleEvent.h:5
Definition: g_signal_subscribers.h:28
Definition: g_cont_it_ref.h:10
Definition: g_signal_subscribers.h:10