26 |
26 |
:: [s0;%- [*/@(128.0.255)1 parameters]]
|
27 |
27 |
:: [s0;%- [*/@(128.0.255)1 arguments]]
|
28 |
28 |
:: [s0;%- [*/@(128.0.255)1 return`_type]]
|
29 |
|
::@2 [s0;%- [*C+75 Callback]]
|
|
29 |
::@2 [s0;:Callback`:`:class:%- [*C+75 Callback]]
|
30 |
30 |
:: [s0;%- [*/C@(0.0.255)+75 none]]
|
31 |
31 |
:: [s0;%- [*/C@(0.0.255)+75 none]]
|
32 |
32 |
:: [s0;%- [*/C+75 void]]
|
33 |
|
:: [s0;%- [*C+75 Callback1]]
|
|
33 |
:: [s0;:Callback1`:`:class:%- [*C+75 Callback1]]
|
34 |
34 |
:: [s0;%- [*/C+75 class P1]]
|
35 |
35 |
:: [s0;%- [*/C+75 P1]]
|
36 |
36 |
:: [s0;%- [*/C+75 void]]
|
37 |
|
:: [s0; [*C+75 Callback2]]
|
|
37 |
:: [s0;:Callback2`:`:class: [*C+75 Callback2]]
|
38 |
38 |
:: [s0; [*/C+75 class P1, class P2]]
|
39 |
39 |
:: [s0; [*/C+75 P1, P2]]
|
40 |
40 |
:: [s0; [*/C+75 void]]
|
41 |
|
:: [s0; [*C+75 Callback3]]
|
|
41 |
:: [s0;:Callback3`:`:class: [*C+75 Callback3]]
|
42 |
42 |
:: [s0; [*/C+75 class P1, class P2, class P3]]
|
43 |
43 |
:: [s0; [*/C+75 P1, P2, P3]]
|
44 |
44 |
:: [s0; [*/C+75 void]]
|
45 |
|
:: [s0; [*C+75 Callback4]]
|
|
45 |
:: [s0;:Callback4`:`:class: [*C+75 Callback4]]
|
46 |
46 |
:: [s0; [*/C+75 class P1, class P2, class P3, class P4]]
|
47 |
47 |
:: [s0; [*/C+75 P1, P2, P3, P4]]
|
48 |
48 |
:: [s0; [*/C+75 void]]
|
49 |
|
:: [s0; [*C+75 Gate]]
|
|
49 |
:: [s0;:Gate`:`:class: [*C+75 Gate]]
|
50 |
50 |
:: [s0; [*/C@(0.0.255)+75 none]]
|
51 |
51 |
:: [s0; [*/C@(0.0.255)+75 none]]
|
52 |
52 |
:: [s0; [*/C+75 bool]]
|
53 |
|
:: [s0; [*C+75 Gate1]]
|
|
53 |
:: [s0;:Gate1`:`:class: [*C+75 Gate1]]
|
54 |
54 |
:: [s0; [*/C+75 class P1]]
|
55 |
55 |
:: [s0; [*/C+75 P1]]
|
56 |
56 |
:: [s0; [*/C+75 bool]]
|
57 |
|
:: [s0; [*C+75 Gate2]]
|
|
57 |
:: [s0;:Gate2`:`:class: [*C+75 Gate2]]
|
58 |
58 |
:: [s0; [*/C+75 class P1, class P2]]
|
59 |
59 |
:: [s0; [*/C+75 P1, P2]]
|
60 |
60 |
:: [s0; [*/C+75 bool]]
|
61 |
|
:: [s0; [*C+75 Gate3]]
|
|
61 |
:: [s0;:Gate3`:`:class: [*C+75 Gate3]]
|
62 |
62 |
:: [s0; [*/C+75 class P1, class P2, class P3]]
|
63 |
63 |
:: [s0; [*/C+75 P1, P2, P3]]
|
|
64 |
:: [s0; [*/C+75 bool]]
|
|
65 |
:: [s0;:Gate4`:`:class: [*C+75 Gate4]]
|
|
66 |
:: [s0; [*/C+75 class P1, class P2, class P3, class P4]]
|
|
67 |
:: [s0; [*/C+75 P1, P2, P3, P4]]
|
64 |
68 |
:: [s0; [*/C+75 bool]]}}&]
|
65 |
|
[s3; &]
|
66 |
69 |
[s0; &]
|
67 |
70 |
[s0; `[ template_<[*/@(128.0.255) parameters]> `]&]
|
68 |
71 |
[s0; [%- class_][*/@(128.0.255) CallbackType]&]
|
... | ... | |
78 |
81 |
Callback takes over its ownership.&]
|
79 |
82 |
[s3; &]
|
80 |
83 |
[s0; &]
|
81 |
|
[s0;:`:`:Callback1`:`:Callback1`(`):%- [%%*/@(128.0.255) CallbackType]()&]
|
|
84 |
[s0;:Callback1`:`:Callback1`(`):%- [%%*/@(128.0.255) CallbackType]()&]
|
82 |
85 |
[s2; Creates an empty callback.&]
|
83 |
86 |
[s3; &]
|
84 |
87 |
[s4; &]
|
85 |
|
[s0;%- [%%*/@(128.0.255) CallbackType](const_[%%*/@(128.0.255) CallbackType]`&_[*@3 c])&]
|
|
88 |
[s0;:Callback1`:`:Callback1`(const Callback1`&`):%- [%%*/@(128.0.255) CallbackType](con
|
|
89 |
st_[%%*/@(128.0.255) CallbackType]`&_[*@3 c])&]
|
86 |
90 |
[s2; Copy constructor. &]
|
87 |
91 |
[s7; [%-*C@3 c]-|Source callback.&]
|
88 |
92 |
[s3; &]
|
... | ... | |
122 |
126 |
[s2; Same as the Execute method.&]
|
123 |
127 |
[s3; &]
|
124 |
128 |
[s0; &]
|
125 |
|
[s0;%- `[ template_<[*/@(128.0.255) parameters]> `]&]
|
|
129 |
[s0;:Callback1Action`:`:struct:%- `[ template_<[*/@(128.0.255) parameters]>
|
|
130 |
`]&]
|
126 |
131 |
[s0;%- struct_[*/@(128.0.255) CallbackType][* Action]&]
|
127 |
132 |
[s2; This is the abstract base class for callback action implementations.
|
128 |
133 |
Callback holds reference counted pointer to instance of class
|
129 |
134 |
derived from this class.&]
|
130 |
135 |
[s3; &]
|
131 |
136 |
[s0; &]
|
132 |
|
[s0;:`:`:Callback4Action`:`:Callback4Action`(`):%- [*/@(128.0.255) CallbackType][* Action
|
133 |
|
]()&]
|
|
137 |
[s0;:Callback1Action`:`:Callback1Action`(`):%- [*/@(128.0.255) CallbackType][* Action]()&]
|
134 |
138 |
[s2; Constructor. Assigns 1 to the reference count.&]
|
135 |
139 |
[s3; &]
|
136 |
140 |
[s4; &]
|
137 |
|
[s0;:`:`:Callback4Action`:`:`~Callback4Action`(`):%- `~[*/@(128.0.255) CallbackType][* Ac
|
138 |
|
tion]()&]
|
|
141 |
[s0;:Callback1Action`:`:`~Callback1Action`(`):%- `~[*/@(128.0.255) CallbackType][* Action
|
|
142 |
]()&]
|
139 |
143 |
[s2; Virtual destructor.&]
|
140 |
144 |
[s3; &]
|
141 |
145 |
[s4; &]
|
142 |
|
[s0;:`:`:Callback4Action`:`:Execute`(P1`,P2`,P3`,P4`):%- virtual
|
143 |
|
[%%*/@(128.0.255) return`_type]_[* Execute]([*/@(128.0.255) arguments])_`=_[@3 0]&]
|
|
146 |
[s0;:Callback1Action`:`:Execute`(P1`):%- virtual [%%*/@(128.0.255) return`_type]_[* Execu
|
|
147 |
te]([*/@(128.0.255) arguments])_`=_[@3 0]&]
|
144 |
148 |
[s2; Performs the action with specified set of arguments.&]
|
145 |
149 |
[s3; &]
|
146 |
150 |
[s4; &]
|
147 |
|
[s0;%- virtual bool_[* IsValid]()_const&]
|
|
151 |
[s0;:Callback1Action`:`:IsValid`(`)const:%- virtual bool_[* IsValid]()_const&]
|
148 |
152 |
[s7; [*/ Return value]-|true if the Action is valid. Default implementation
|
149 |
153 |
returns true.&]
|
150 |
154 |
[s3; &]
|
151 |
155 |
[s4; &]
|
152 |
|
[s0;%- Atomic_[* count]&]
|
|
156 |
[s0;:Callback1Action`:`:count:%- Atomic_[* count]&]
|
153 |
157 |
[s2; Member variable used as reference count.&]
|
154 |
158 |
[s3; &]
|
155 |
159 |
[s0;%- &]
|
... | ... | |
204 |
208 |
[s7; [*/ Return value]-|Created callback.&]
|
205 |
209 |
[s3; &]
|
206 |
210 |
[s4; &]
|
207 |
|
[s0; `[ template_<[*/@(128.0.255) parameters]> `]&]
|
|
211 |
[s0;:Proxy`(Callback1`<P1`>`&`): `[ template_<[*/@(128.0.255) parameters]>
|
|
212 |
`]&]
|
208 |
213 |
[s0;%- [*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >]
|
209 |
214 |
[* Proxy]([*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >]`&_[*@3 cb])&]
|
210 |
215 |
[s2; Creates a Callback object that invokes another Callback object.
|
... | ... | |
217 |
222 |
[s7; [*/ Return value]-|Created callback.&]
|
218 |
223 |
[s3; &]
|
219 |
224 |
[s4; &]
|
220 |
|
[s0; `[ template_<[*/@(128.0.255) parameters]> `]&]
|
|
225 |
[s0;:callback`(Callback1`<P1`>`,Callback1`<P1`>`): `[ template_<[*/@(128.0.255) paramet
|
|
226 |
ers]> `]&]
|
221 |
227 |
[s0;%- [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >
|
222 |
228 |
][* callback]([%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >
|
223 |
229 |
]_[*@3 cb1], [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >
|
... | ... | |
233 |
239 |
[s7; [*/ Return value]-|Created callback.&]
|
234 |
240 |
[s3; &]
|
235 |
241 |
[s4; &]
|
236 |
|
[s0; `[ template_<[*/@(128.0.255) parameters]> `]&]
|
|
242 |
[s0;:operator`<`<`(Callback1`<P1`>`&`,Callback1`<P1`>`): `[ template_<[*/@(128.0.255) p
|
|
243 |
arameters]> `]&]
|
237 |
244 |
[s0;%- [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >]`&_[* operator<<](
|
238 |
245 |
[%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >
|
239 |
246 |
]`&_[*@3 a], [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >]_[*@3 b])
|
... | ... | |
353 |
360 |
[s7; [*/ Return value]-|Created callback.&]
|
354 |
361 |
[s3; &]
|
355 |
362 |
[s4; &]
|
356 |
|
[s0;%- template_<class_[*@4 T], class_[*@4 P]>&]
|
357 |
|
[s0;%- Callback_[* callback1](Callback1<[*@4 P]>_[*@3 cb], [*@4 T]_[*@3 arg])&]
|
|
363 |
[s0;:callback1`(Callback1`<P`>`,T`):%- template_<class_[*@4 T], class_[*@4 P]>&]
|
|
364 |
[s0;:callback1`(Callback1`<P`>`,T`):%- Callback_[* callback1](Callback1<[*@4 P]>_[*@3 cb],
|
|
365 |
[*@4 T]_[*@3 arg])&]
|
358 |
366 |
[s2; Combines a single`-parameter callback and an argument into a
|
359 |
367 |
no`-parameter callback.&]
|
360 |
368 |
[s7; [%-*C@3 cb]-|Single`-parameter callback.&]
|
... | ... | |
362 |
370 |
[s7; [*/ Return value]-|Created callback.&]
|
363 |
371 |
[s3; &]
|
364 |
372 |
[s4; &]
|
365 |
|
[s0;%- template_<class_[*@4 T], class_[*@4 P1], class_[*@4 P]>&]
|
366 |
|
[s0;%- Callback1<[*@4 P1]>_[* callback1](Callback2<[*@4 P1], [*@4 P]>_[*@3 cb],
|
367 |
|
[*@4 T]_[*@3 arg])&]
|
|
373 |
[s0;:callback1`(Callback2`<P1`,P`>`,T`):%- template_<class_[*@4 T],
|
|
374 |
class_[*@4 P1], class_[*@4 P]>&]
|
|
375 |
[s0;:callback1`(Callback2`<P1`,P`>`,T`):%- Callback1<[*@4 P1]>_[* callback1](Callback2<[*@4 P
|
|
376 |
1], [*@4 P]>_[*@3 cb], [*@4 T]_[*@3 arg])&]
|
368 |
377 |
[s2; Combines a double`-parameter callback and an argument into a
|
369 |
378 |
single parameter callback.&]
|
370 |
379 |
[s7; [%-*C@3 cb]-|Double`-parameter callback.&]
|
... | ... | |
432 |
441 |
[s7; [*/ Return value]-|Created callback.&]
|
433 |
442 |
[s3; &]
|
434 |
443 |
[s4; &]
|
435 |
|
[s0;%- template_<class_[*@4 A], class_[*@4 B], class_[*@4 T1], class_[*@4 T2]>&]
|
436 |
|
[s0;%- Callback_[* callback2](Callback2<[*@4 A], [*@4 B]>_[*@3 cb], [*@4 T1]_[*@3 arg1],
|
437 |
|
[*@4 T2]_[*@3 arg2])&]
|
|
444 |
[s0;:callback2`(Callback2`<A`,B`>`,T1`,T2`):%- template_<class_[*@4 A],
|
|
445 |
class_[*@4 B], class_[*@4 T1], class_[*@4 T2]>&]
|
|
446 |
[s0;:callback2`(Callback2`<A`,B`>`,T1`,T2`):%- Callback_[* callback2](Callback2<[*@4 A],
|
|
447 |
[*@4 B]>_[*@3 cb], [*@4 T1]_[*@3 arg1], [*@4 T2]_[*@3 arg2])&]
|
438 |
448 |
[s2; Combines a two`-parameter callback and two arguments into a
|
439 |
449 |
no`-parameter callback.&]
|
440 |
450 |
[s7; [%-*C@3 cb]-|Two`-parameter callback.&]
|