acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
dispatch_array.h
1// Created based on ca2 sequence theoric classed by
2// camilo on 2024-1007 17:40 <3ThomasBorregaardSorensen!!
3#pragma once
4
5
6#include "acme/prototype/collection/procedure_array.h"
7
8
9class sequence;
10
11#include "acme/prototype/prototype/function.h"
12
13//
14//
16//class sequencer;
17//using sequencer_step =
18//::function < void(::sequencer & sequencer) >;
19//
134
135
136using particle_pointer = ::pointer < ::particle >;
137
138
139
140class CLASS_DECL_ACME dispatch_array2 :
141 virtual public ::procedure_array
142{
143public:
144
145
146
147 //::procedure m_procedure;
148 //::pointer < sequence > m_psequence;
149 ::cast < ::particle > m_pparticleDispatcher;
150 enum_dispatch m_edispatch;
151
152
153 //dispatch_array2(::particle * pparticleDispatcher, enum_dispatch edispatch);
154 dispatch_array2(::particle * pparticleDispatcher, enum_dispatch edispatch);
155 //sequence_continuation(::particle * pparticleTarget, enum_dispatch edispatch, const ::procedure & procedure, bool bCreateSequence = false);
156 dispatch_array2(::particle * pparticleDispatcher, enum_dispatch edispatch, const ::procedure &procedure);
157 dispatch_array2(const dispatch_array2 & dispatcha);
158
159
160
161 dispatch_array2 & operator << (const ::procedure & procedure);
162
163
164 ~dispatch_array2();
165
166
167 void run() override;
168
169
170 void dispatch_this();
171
172
173};
174
175
176
177
178class CLASS_DECL_ACME dispatch_arrayø :
179 virtual public ::dispatch_array2
180{
181public:
182
183
184 using dispatch_array2::dispatch_array2;
185
186
188 {
189
190 try
191 {
192
193 dispatch_this();
194
195 }
196 catch (...)
197 {
198
199 }
200
201 }
202
203
204};
205
206
207
208
209
210// class CLASS_DECL_ACME post_dispatch_array :
211// public dispatch_arrayø
212// {
213// public:
214//
215//
216// post_dispatch_array(::particle * pparticleDispatcher) : dispatch_arrayø(pparticleDispatcher, e_dispatch_post) {}
217// post_dispatch_array(::particle * pparticleDispatcher, const::procedure & procedure) : dispatch_arrayø(pparticleDispatcher, e_dispatch_post, procedure) {}
218// post_dispatch_array & operator << (const ::procedure & procedure)
219// {
220// dispatch_arrayø::operator <<(procedure);
221// return *this;
222// }
223//
224// };
225//
226//
227// class CLASS_DECL_ACME send_dispatch_array :
228// public dispatch_arrayø
229// {
230// public:
231//
232//
233// send_dispatch_array(::particle * pparticleDispatcher) : dispatch_arrayø(pparticleDispatcher, e_dispatch_send) {}
234// send_dispatch_array(::particle * pparticleDispatcher, const::procedure & procedure) : dispatch_arrayø(pparticleDispatcher, e_dispatch_send, procedure) {}
235// send_dispatch_array & operator << (const ::procedure & procedure)
236// {
237// dispatch_arrayø::operator <<(procedure);
238// return *this;
239// }
240//
241// };
Definition dispatch_array.h:180