acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
match.h
1#pragma once
2
3
4
5//#include "acme/prototype/collection/array.h"
6//#include "acme/prototype/collection/pointer_array.h"
7
8
9namespace match
10{
11
12
13 class CLASS_DECL_ACME item :
14 virtual public particle
15 {
16 public:
17
18
19 item() {}
20 ~item() override {}
21
22
23 virtual bool matches(const ::payload & payload) const = 0;
24
25
26 };
27
28
29 class CLASS_DECL_ACME _and :
30 virtual public item
31 {
32 public:
33
34
35 item* m_pitem1;
36 item* m_pitem2;
37
38
39 virtual bool matches(const ::payload & payload) const;
40
41 };
42
43
44 class CLASS_DECL_ACME string :
45 virtual public item
46 {
47 public:
48
49
50 ::string m_str;
51
52
53 string(const ::scoped_string & scopedstr = nullptr);
54
55
56 virtual bool matches(const ::payload & payload) const;
57
58
59 };
60
61
62 class CLASS_DECL_ACME ci_string :
63 virtual public item
64 {
65 public:
66
67
68 ::string m_str;
69
70 ci_string(const ::scoped_string & scopedstr = nullptr);
71
72
73 virtual bool matches(const ::payload & payload) const;
74
75
76 };
77
78
79 class CLASS_DECL_ACME prefix :
80 virtual public item
81 {
82 public:
83
84
85 ::string m_str;
86
87 prefix(const ::scoped_string & scopedstr = nullptr);
88
89
90 virtual bool matches(const ::payload & payload) const;
91
92
93 };
94
95
96 class CLASS_DECL_ACME ci_prefix :
97 virtual public item
98 {
99 public:
100
101
102 ::string m_str;
103
104
105 ci_prefix(const ::scoped_string & scopedstr = nullptr);
106
107
108 virtual bool matches(const ::payload & payload) const;
109
110
111 };
112
113
114 class CLASS_DECL_ACME suffix :
115 virtual public item
116 {
117 public:
118
119
120 ::string m_str;
121
122
123 suffix(const ::scoped_string & scopedstr = nullptr);
124
125
126 virtual bool matches(const ::payload & payload) const;
127
128
129 };
130
131
132 class CLASS_DECL_ACME ci_suffix :
133 virtual public item
134 {
135 public:
136
137
138 ::string m_str;
139
140 ci_suffix(const ::scoped_string & scopedstr = nullptr);
141
142
143 virtual bool matches(const ::payload & payload) const;
144
145 };
146
147
148 class CLASS_DECL_ACME any :
149 virtual public item
150 {
151 public:
152
153
154 HAVE_ARRAY_OF(item, m_itema, item);
155
156
157 virtual bool matches(const ::payload & payload) const;
158
159
160
161 };
162
163
164} // namespace match
165
166
167
Definition match.h:31
Definition match.h:150
Definition match.h:46
Definition payload.h:54