acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
procedure_array.h
1// Created by camilo on 2024-10-08 23:31 <3ThomasBorregaardSorensen!!
2#pragma once
3
4
5#include "acme/prototype/prototype/function.h"
6#include "acme/prototype/collection/array_base.h"
7#include "acme/prototype/collection/comparable_eq_array.h"
8#include "acme/prototype/collection/comparable_array.h"
9
10
11class CLASS_DECL_ACME procedure_array :
12 virtual public ::array_particle<::procedure_array_base>
13{
14public:
15
16
17 using BASE_ARRAY = ::array_particle<::procedure_array_base>;
18
19
20 using BASE_ARRAY::BASE_ARRAY;
21
22 using BASE_ARRAY::operator =;
23
24 procedure_array(procedure_array&& procedurea) :
25 BASE_ARRAY(::transfer(procedurea))
26 {
27
28 }
29
30 procedure_array(const procedure_array& procedurea) :
31 BASE_ARRAY(procedurea)
32 {
33
34 }
35
36
37 void run() override;
38 virtual void on_end_procedure();
39
40
41 procedure_array & operator=(const procedure_array& procedurea)
42 {
43 BASE_ARRAY::operator=(procedurea);
44 return *this;
45 }
46
47 procedure_array & operator=(procedure_array&& procedurea)
48 {
49 BASE_ARRAY::operator=(::transfer(procedurea));
50 return *this;
51 }
52
53
54};
55
56
57template < typename CONTEXT_TYPE >
58class procedure_array_with_context :
59 virtual public ::procedure_array
60{
61public:
62
63 procedure_array_with_context() {}
64 procedure_array_with_context(const procedure_array_base &procedurea) :
65 procedure_array(procedurea),
66 ::array_particle<::procedure_array_base>(procedurea)
67 {
68
69 }
70 procedure_array_with_context(procedure_array_base &&procedurea) :
71 procedure_array(::transfer(procedurea)),
72 ::array_particle<::procedure_array_base>(::transfer(procedurea))
73 {
74
75 }
76
77
78 procedure_array_with_context &operator=(const procedure_array_base &procedurea)
79 {
80 ::procedure_array_base::operator=(procedurea);
81 return *this;
82
83 }
84
85
86 void run() override;
87
88
89};
90
91