acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
__payload_array.h
1#pragma once
2
3
4// Include payload.h
5// Don`t include this file directly
6
7
8#include "array_base.h"
9
10
11class CLASS_DECL_ACME payload_array_base :
12 public array_base < ::payload, const ::payload &, ::typed::def < ::payload >, ::heap::typed_memory < ::payload, ::heap::e_memory_array >, e_type_payload_array >
13{
14public:
15
16
17 using BASE_ARRAY = array_base < ::payload, const ::payload&, ::typed::def < ::payload >, ::heap::typed_memory < ::payload, ::heap::e_memory_array >, e_type_payload_array >;
18
19
20 payload_array_base();
21 payload_array_base(const std::initializer_list < ::payload > & varlist);
22 payload_array_base(const string_array_base & stra);
23 payload_array_base(const ::i32_array_base & inta);
24 payload_array_base(const ::property_set & propset);
25 payload_array_base(const typename BASE_ARRAY::BASE_ARRAY::RAW_BASE_ARRAY& payloada);
26 payload_array_base(typename BASE_ARRAY::BASE_ARRAY::RAW_BASE_ARRAY&& payloada);
27 ~payload_array_base();
28
29
30 ::collection::index add(const ::payload & payload);
31 ::collection::index append(const payload_array_base & payloada);
32 ::collection::index append(const std::initializer_list < ::payload > & list_base);
33
34// inline ::collection::index add(const ::scoped_string & scopedstr) { return add((const ::payload &) str); }
35 //inline ::collection::index add(const ::scoped_string & scopedstr) { return add((const payload &) scopedstr); }
36
37 //inline ::collection::index add(::i8 ch) { return add((const ::payload &) ch); }
38 //inline ::collection::index add(::u8 uch) { return add((const ::payload &) uch); }
39 //inline ::collection::index add(::i16 sh) { return add((const ::payload &) sh); }
40 //inline ::collection::index add(::u16 ush) { return add((const ::payload &) ush); }
41 //inline ::collection::index add(::i32 i) { return add((const ::payload &) i); }
42 //inline ::collection::index add(::u32 ui) { return add((const ::payload &) ui); }
43 //inline ::collection::index add(::i64 hi) { return add((const ::payload &) hi); }
44 //inline ::collection::index add(::u64 hn) { return add((const ::payload &) hn); }
45
46 ::collection::count append_unique(const payload_array_base & payloada);
47
48 string implode(const ::scoped_string & scopedstrGlue) const;
49
50
51 ::collection::index case_insensitive_find_first(const ::scoped_string & scopedstr, ::collection::index find = 0, ::collection::index last = -1) const;
52 ::collection::index find_first(const ::scoped_string & scopedstr, ::collection::index find = 0, ::collection::index last = -1) const;
53 ::collection::index find_first(const ::payload & payload, ::collection::index find = 0, ::collection::index last = -1) const;
54
55 bool case_insensitive_contains(const ::scoped_string & str, ::collection::index find = 0, ::collection::index last = -1, ::collection::count countMin = 1, ::collection::count countMax = -1) const;
56
57 bool contains(const ::scoped_string & str, ::collection::index find = 0, ::collection::index last = -1, ::collection::count countMin = 1, ::collection::count countMax = -1) const;
58
59 bool contains(const ::payload & payload, ::collection::index find = 0, ::collection::index last = -1, ::collection::count countMin = 1, ::collection::count countMax = -1) const;
60
61
62 std::strong_ordering operator<=>(const ::payload_array_base & payloada) const
63 {
64
65 return order(payloada);
66
67 }
68
69 std::strong_ordering order(const ::payload_array_base & payloada) const;
70 std::strong_ordering case_insensitive_order(const ::payload_array_base & payloada) const;
71
72 ::collection::count case_insensitive_erase_first(const ::scoped_string & str, ::collection::index find = 0, ::collection::index last = -1);
73
74 ::collection::count erase_first(const ::scoped_string & str, ::collection::index find = 0, ::collection::index last = -1);
75
76 ::collection::count erase_first(const ::payload & payload, ::collection::index find = 0, ::collection::index last = -1);
77
78 ::collection::count case_insensitive_erase(const ::scoped_string & str, ::collection::index find = 0, ::collection::index last = -1, ::collection::count countMin = 0, ::collection::count countMax = -1);
79
80 ::collection::count erase(const ::scoped_string & str, ::collection::index find = 0, ::collection::index last = -1, ::collection::count countMin = 0, ::collection::count countMax = -1);
81
82 ::collection::count erase(const ::payload & payload, ::collection::index find = 0, ::collection::index last = -1, ::collection::count countMin = 0, ::collection::count countMax = -1);
83
84 ::collection::count erase(const payload_array_base & payloada);
85
86 payload_array_base & operator -=(const ::payload & payload);
87 payload_array_base & operator -=(const payload_array_base & payloada);
88 payload_array_base operator -(const ::payload & payload) const;
89 payload_array_base operator -(const payload_array_base & payloada) const;
90 payload_array_base & operator +=(const ::payload & payload);
91 payload_array_base & operator +=(const payload_array_base & payloada);
92 payload_array_base operator +(const ::payload & payload) const;
93 payload_array_base operator +(const payload_array_base & payloada) const;
94
95 payload_array_base & operator = (const string_array_base & stra);
96 payload_array_base & operator = (const ::i32_array_base & inta);
97 payload_array_base & operator = (const ::property_set & propset);
98 payload_array_base & operator = (const payload_array_base & payloada);
99
100
101 //void parse_network_payload(const_char_pointer &pszJson);
102 void parse_network_payload(::ansi_range & range);
103 void find_network_payload_child(::ansi_range & range, const ::payload & payload);
104
105
106 string & get_network_payload(string & str, bool bNewLine = true) const;
107
108 //
109 // payload_array_base array()
110 // {
111 //
112 // return payload_array_base();
113 //
114 // }
115 //
116 // template < typename... VARS >
117 // payload_array_base array(VARS&... vars)
118 // {
119 //
120 // payload_array_base va;
121 // return va.array(vars...);
122 //
123 // }
124 //
125
126 inline ::payload value_at(::collection::index i) const;
127
128
129 string_array_base stra() const
130 {
131
132 string_array_base stra;
133
134 for (auto & item : *this)
135 {
136
137 stra.add(item.as_string());
138
139 }
140
141 return ::transfer(stra);
142
143 }
144
145
146};
147
148
149
150
151//CLASS_DECL_ACME void var_array_skip_network_payload(const_char_pointer &pszJson);
152CLASS_DECL_ACME void payload_array_skip_network_payload(::ansi_range & range);
153
154
155inline ::payload payload_array_base::value_at(::collection::index i) const
156{
157
158 if (i < 0 || i >= this->get_count())
159 {
160
161 return error_index_out_of_bounds;
162
163 }
164
165 return this->element_at(i);
166
167}
168
169
170
171
172namespace acme
173{
174
175
176 template < typename... VARS >
177 ::payload_array array_merge(VARS&... vars)
178 {
179
180 return ::payload_array(vars...);
181
182
183 }
184
185
186} // namespace acme
187
188
189
190
191
192
Definition item.h:93
Definition list.h:33
Definition payload.h:54
Definition range.h:223
include "aura/graphics/image/context.h"
Definition aaaa__defer.h:32