You.i Engine
YiSignalTransition.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_SIGNAL_TRANSITION_H_
3 #define _YI_SIGNAL_TRANSITION_H_
4 
8 
9 namespace yi
10 {
16 namespace deprecated
17 {
18 template<typename YI_SLOT_PARAM1 = void, typename YI_SLOT_PARAM2 = void, typename YI_SLOT_PARAM3 = void, typename YI_SLOT_PARAM4 = void>
20 {
21 public:
23  CYICompoundState *source,
24  CYIAbstractState *target = 0) :
25  CYIAbstractSignalTransition(signal, source, target),
26  pSignal(signal)
27  {
28  SetSource(source);
29  }
30 
32  {
33  return pSignal;
34  }
35 
38 
39 protected:
40  virtual bool TestEvent(CYIEvent *e) override
41  {
43  {
44  return true;
45  }
46  return false;
47  }
48 
49  virtual void OnTransitionStart(CYIEvent *e) override
50  {
53  }
54 
55  virtual void OnTransitionEnd(CYIEvent *e) override
56  {
59  }
60 
61  virtual void Connect() override
62  {
63  pSignal->Connect(*m_pGenerator, &CYISignalEventGenerator::slot4<YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3, YI_SLOT_PARAM4>, YI_CONNECTION_ASYNC);
64  }
65 
67 };
68 
69 template<typename YI_SLOT_PARAM1, typename YI_SLOT_PARAM2, typename YI_SLOT_PARAM3>
70 class CYISignalTransition<YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3> : public CYIAbstractSignalTransition
71 {
72 public:
74  CYICompoundState *source,
75  CYIAbstractState *target = 0) :
76  CYIAbstractSignalTransition(signal, source, target),
77  pSignal(signal)
78  {
79  SetSource(source);
80  }
81 
83  {
84  return pSignal;
85  }
86 
89 
90 protected:
91  virtual bool TestEvent(CYIEvent *e) override
92  {
94  {
95  return true;
96  }
97  return false;
98  }
99 
100  virtual void OnTransitionStart(CYIEvent *e) override
101  {
104  }
105 
106  virtual void OnTransitionEnd(CYIEvent *e) override
107  {
110  }
111 
112  virtual void Connect() override
113  {
114  pSignal->Connect(*m_pGenerator, &CYISignalEventGenerator::slot3<YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3>, YI_CONNECTION_ASYNC);
115  }
116 
118 };
119 
120 template<typename YI_SLOT_PARAM1, typename YI_SLOT_PARAM2>
121 class CYISignalTransition<YI_SLOT_PARAM1, YI_SLOT_PARAM2> : public CYIAbstractSignalTransition
122 {
123 public:
125  CYICompoundState *source,
126  CYIAbstractState *target = 0) :
127  CYIAbstractSignalTransition(signal, source, target),
128  pSignal(signal)
129  {
130  SetSource(source);
131  }
132 
134  {
135  return pSignal;
136  }
137 
140 
141 protected:
142  virtual bool TestEvent(CYIEvent *e) override
143  {
145  {
146  return true;
147  }
148  return false;
149  }
150 
151  virtual void OnTransitionStart(CYIEvent *e) override
152  {
155  }
156 
157  virtual void OnTransitionEnd(CYIEvent *e) override
158  {
161  }
162 
163  virtual void Connect() override
164  {
165  pSignal->Connect(*m_pGenerator, &CYISignalEventGenerator::slot2<YI_SLOT_PARAM1, YI_SLOT_PARAM2>, YI_CONNECTION_ASYNC);
166  }
167 
169 };
170 
171 template<typename YI_SLOT_PARAM1>
172 class CYISignalTransition<YI_SLOT_PARAM1> : public CYIAbstractSignalTransition
173 {
174 public:
176  CYICompoundState *source,
177  CYIAbstractState *target = 0) :
178  CYIAbstractSignalTransition(signal, source, target),
179  pSignal(signal)
180  {
181  SetSource(source);
182  }
183 
185  {
186  return pSignal;
187  }
188 
191 
192 protected:
193  virtual bool TestEvent(CYIEvent *e) override
194  {
196  {
197  return true;
198  }
199  return false;
200  }
201 
202  virtual void OnTransitionStart(CYIEvent *e) override
203  {
206  }
207 
208  virtual void OnTransitionEnd(CYIEvent *e) override
209  {
212  }
213 
214  virtual void Connect() override
215  {
216  pSignal->Connect(*m_pGenerator, &CYISignalEventGenerator::slot1<YI_SLOT_PARAM1>, YI_CONNECTION_ASYNC);
217  }
218 
220 };
221 
222 template<>
224 {
225 public:
227  CYICompoundState *source,
228  CYIAbstractState *target = 0) :
229  CYIAbstractSignalTransition(signal, source, target),
230  pSignal(signal)
231  {
232  SetSource(source);
233  }
234 
235  virtual CYISignal<> *GetSignal() override
236  {
237  return pSignal;
238  }
239 
240 protected:
241  virtual bool TestEvent(CYIEvent *e) override
242  {
244  {
245  return true;
246  }
247  return false;
248  }
249 
250  virtual void Connect() override
251  {
253  }
254 
256 };
257 
258 } //namespace deprecated
259 
262 } //namespace yi
263 
264 #endif /* _YI_SIGNAL_TRANSITION_H_ */
Definition: YiAbstractSignalTransition.h:7
Event class for the state machine signal emit events which supports 3 slot parameters.
Definition: YiStateMachineSignalEvent.h:47
virtual void Connect() override
Definition: YiSignalTransition.h:163
CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2 > TransitionStartedWithParam
Definition: YiSignalTransition.h:138
CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3, YI_SLOT_PARAM4 > * pSignal
Definition: YiSignalTransition.h:66
virtual void OnTransitionEnd(CYIEvent *e) override
Definition: YiSignalTransition.h:106
virtual void OnTransitionStart(CYIEvent *e) override
Definition: YiSignalTransition.h:151
virtual bool TestEvent(CYIEvent *e) override
Definition: YiSignalTransition.h:142
CYISignal< YI_SLOT_PARAM1 > TransitionEndedWithParam
Definition: YiSignalTransition.h:190
virtual bool TestEvent(CYIEvent *e) override
Definition: YiSignalTransition.h:91
CYISignalTransition(CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2 > *signal, CYICompoundState *source, CYIAbstractState *target=0)
Definition: YiSignalTransition.h:124
virtual CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3, YI_SLOT_PARAM4 > * GetSignal() override
Definition: YiSignalTransition.h:31
Abstract parent for the CYIStateMachineSignalEvent classes.
Definition: YiStateMachineAbstractSignalEvent.h:22
Base class for events.
Definition: YiEvent.h:489
CYISignalTransition(CYISignal< YI_SLOT_PARAM1 > *signal, CYICompoundState *source, CYIAbstractState *target=0)
Definition: YiSignalTransition.h:175
The base class for state types in CYIStateMachine.
Definition: YiAbstractState.h:31
CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3 > TransitionEndedWithParam
Definition: YiSignalTransition.h:88
virtual CYISignal * GetSignal() override
Definition: YiSignalTransition.h:235
virtual void Connect() override
Definition: YiSignalTransition.h:61
YI_SLOT_PARAM2 param2
Definition: YiStateMachineSignalEvent.h:78
YI_SLOT_PARAM1 param1
Definition: YiStateMachineSignalEvent.h:77
virtual CYISignal< YI_SLOT_PARAM1 > * GetSignal() override
Definition: YiSignalTransition.h:184
Event class for the state machine signal emit events which supports 4 slot parameters.
Definition: YiStateMachineSignalEvent.h:20
YI_SLOT_PARAM1 param1
Definition: YiStateMachineSignalEvent.h:100
The base class for CYIState and CYIParallelState.
Definition: YiCompoundState.h:26
CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3 > TransitionStartedWithParam
Definition: YiSignalTransition.h:87
virtual CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2 > * GetSignal() override
Definition: YiSignalTransition.h:133
CYISignal< YI_SLOT_PARAM1 > * pSignal
Definition: YiSignalTransition.h:219
virtual void OnTransitionEnd(CYIEvent *e) override
Definition: YiSignalTransition.h:55
Definition: YiSignalTransition.h:19
CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2 > TransitionEndedWithParam
Definition: YiSignalTransition.h:139
YI_SLOT_PARAM1 param1
Definition: YiStateMachineSignalEvent.h:25
CYISignal * pSignal
Definition: YiSignalTransition.h:255
virtual bool TestEvent(CYIEvent *e) override
Definition: YiSignalTransition.h:193
CYISignalTransition(CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3, YI_SLOT_PARAM4 > *signal, CYICompoundState *source, CYIAbstractState *target=0)
Definition: YiSignalTransition.h:22
virtual void Connect() override
Definition: YiSignalTransition.h:250
virtual void Connect() override
Definition: YiSignalTransition.h:112
void slot0()
Definition: YiSignalEventGenerator.h:29
virtual bool TestEvent(CYIEvent *e) override
Definition: YiSignalTransition.h:241
CYISignalEventGenerator * m_pGenerator
Definition: YiAbstractSignalTransition.h:43
CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3, YI_SLOT_PARAM4 > TransitionEndedWithParam
Definition: YiSignalTransition.h:37
virtual bool TestEvent(CYIEvent *e) override
Definition: YiSignalTransition.h:40
virtual void OnTransitionEnd(CYIEvent *e) override
Definition: YiSignalTransition.h:157
CYISignalTransition(CYISignal<> *signal, CYICompoundState *source, CYIAbstractState *target=0)
Definition: YiSignalTransition.h:226
void SetSource(CYICompoundState *source)
virtual bool TestEvent(CYIEvent *) override
Definition: YiSignalAbstractConnection.h:48
YI_SLOT_PARAM3 param3
Definition: YiStateMachineSignalEvent.h:27
virtual void OnTransitionStart(CYIEvent *e) override
Definition: YiSignalTransition.h:49
CYISignal< YI_SLOT_PARAM1 > TransitionStartedWithParam
Definition: YiSignalTransition.h:189
Event class for the state machine signal emit events which supports 1 slot parameter.
Definition: YiStateMachineSignalEvent.h:95
virtual void OnTransitionStart(CYIEvent *e) override
Definition: YiSignalTransition.h:100
CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3 > * pSignal
Definition: YiSignalTransition.h:117
virtual CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3 > * GetSignal() override
Definition: YiSignalTransition.h:82
Event class for the state machine signal emit events which supports 2 slot parameters.
Definition: YiStateMachineSignalEvent.h:72
virtual void OnTransitionEnd(CYIEvent *e) override
Definition: YiSignalTransition.h:208
YI_SLOT_PARAM2 param2
Definition: YiStateMachineSignalEvent.h:26
CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3, YI_SLOT_PARAM4 > TransitionStartedWithParam
Definition: YiSignalTransition.h:36
virtual void Connect() override
Definition: YiSignalTransition.h:214
virtual void OnTransitionStart(CYIEvent *e) override
Definition: YiSignalTransition.h:202
YI_SLOT_PARAM4 param4
Definition: YiStateMachineSignalEvent.h:28
CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2 > * pSignal
Definition: YiSignalTransition.h:168
Definition: YiAbstractSignalTransition.h:25
CYISignalTransition(CYISignal< YI_SLOT_PARAM1, YI_SLOT_PARAM2, YI_SLOT_PARAM3 > *signal, CYICompoundState *source, CYIAbstractState *target=0)
Definition: YiSignalTransition.h:73
CYISignalConnectionID Connect(HandlerType &rSignalHandler, SlotReturnType(SlotHandlerType::*const pSlot)(SlotTypes...), YI_CONNECTION_TYPE type=YI_CONNECTION_AUTO)