Skip to content

Commit f1de0f9

Browse files
committed
Add startuo::safe_run overload
1 parent e3d7efc commit f1de0f9

File tree

2 files changed

+551
-117
lines changed

2 files changed

+551
-117
lines changed

src/xtd.core/include/xtd/startup.hpp

Lines changed: 116 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,33 @@ namespace xtd {
8989
static int safe_run(xtd::delegate<int(int, char* [])> main_function);
9090
static int safe_run(xtd::delegate<int(const xtd::argument_collection&)> main_function, int argc, char* argv[]);
9191
static int safe_run(xtd::delegate<int(const xtd::argument_collection&)> main_function);
92-
static int safe_run(xtd::threading::tasks::task<> (*main_function)(int, char* []), int argc, char* argv[]);
93-
static int safe_run(xtd::threading::tasks::task<> (*main_function)(int, char* []));
94-
static int safe_run(xtd::threading::tasks::task<> (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
95-
static int safe_run(xtd::threading::tasks::task<> (*main_function)(const xtd::argument_collection&));
96-
static int safe_run(xtd::threading::tasks::wtask<> (*main_function)(int, char* []), int argc, char* argv[]);
97-
static int safe_run(xtd::threading::tasks::wtask<> (*main_function)(int, char* []));
98-
static int safe_run(xtd::threading::tasks::wtask<> (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
99-
static int safe_run(xtd::threading::tasks::wtask<> (*main_function)(const xtd::argument_collection&));
92+
93+
static int safe_run(xtd::delegate<xtd::threading::tasks::task<>()> main_function, int argc, char* argv[]);
94+
static int safe_run(xtd::delegate<xtd::threading::tasks::task<>()> main_function);
95+
static int safe_run(xtd::delegate<xtd::threading::tasks::task<>(int, char* [])> main_function, int argc, char* argv[]);
96+
static int safe_run(xtd::delegate<xtd::threading::tasks::task<>(int, char* [])> main_function);
97+
static int safe_run(xtd::delegate<xtd::threading::tasks::task<>(const xtd::argument_collection&)> main_function, int argc, char* argv[]);
98+
static int safe_run(xtd::delegate<xtd::threading::tasks::task<>(const xtd::argument_collection&)> main_function);
99+
static int safe_run(xtd::delegate<xtd::threading::tasks::task<int>()> main_function, int argc, char* argv[]);
100+
static int safe_run(xtd::delegate<xtd::threading::tasks::task<int>()> main_function);
101+
static int safe_run(xtd::delegate<xtd::threading::tasks::task<int>(int, char* [])> main_function, int argc, char* argv[]);
102+
static int safe_run(xtd::delegate<xtd::threading::tasks::task<int>(int, char* [])> main_function);
103+
static int safe_run(xtd::delegate<xtd::threading::tasks::task<int>(const xtd::argument_collection&)> main_function, int argc, char* argv[]);
104+
static int safe_run(xtd::delegate<xtd::threading::tasks::task<int>(const xtd::argument_collection&)> main_function);
105+
106+
static int safe_run(xtd::delegate<xtd::threading::tasks::wtask<>()> main_function, int argc, char* argv[]);
107+
static int safe_run(xtd::delegate<xtd::threading::tasks::wtask<>()> main_function);
108+
static int safe_run(xtd::delegate<xtd::threading::tasks::wtask<>(int, char* [])> main_function, int argc, char* argv[]);
109+
static int safe_run(xtd::delegate<xtd::threading::tasks::wtask<>(int, char* [])> main_function);
110+
static int safe_run(xtd::delegate<xtd::threading::tasks::wtask<>(const xtd::argument_collection&)> main_function, int argc, char* argv[]);
111+
static int safe_run(xtd::delegate<xtd::threading::tasks::wtask<>(const xtd::argument_collection&)> main_function);
112+
static int safe_run(xtd::delegate<xtd::threading::tasks::wtask<int>()> main_function, int argc, char* argv[]);
113+
static int safe_run(xtd::delegate<xtd::threading::tasks::wtask<int>()> main_function);
114+
static int safe_run(xtd::delegate<xtd::threading::tasks::wtask<int>(int, char* [])> main_function, int argc, char* argv[]);
115+
static int safe_run(xtd::delegate<xtd::threading::tasks::wtask<int>(int, char* [])> main_function);
116+
static int safe_run(xtd::delegate<xtd::threading::tasks::wtask<int>(const xtd::argument_collection&)> main_function, int argc, char* argv[]);
117+
static int safe_run(xtd::delegate<xtd::threading::tasks::wtask<int>(const xtd::argument_collection&)> main_function);
118+
100119
static int safe_run(void (*main_function)(int, char* []), int argc, char* argv[]);
101120
static int safe_run(void (*main_function)(int, char* []));
102121
static int safe_run(void (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
@@ -105,6 +124,32 @@ namespace xtd {
105124
static int safe_run(int (*main_function)(int, char* []));
106125
static int safe_run(int (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
107126
static int safe_run(int (*main_function)(const xtd::argument_collection&));
127+
128+
static int safe_run(xtd::threading::tasks::task<> (*main_function)(), int argc, char* argv[]);
129+
static int safe_run(xtd::threading::tasks::task<> (*main_function)());
130+
static int safe_run(xtd::threading::tasks::task<> (*main_function)(int, char* []), int argc, char* argv[]);
131+
static int safe_run(xtd::threading::tasks::task<> (*main_function)(int, char* []));
132+
static int safe_run(xtd::threading::tasks::task<> (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
133+
static int safe_run(xtd::threading::tasks::task<> (*main_function)(const xtd::argument_collection&));
134+
static int safe_run(xtd::threading::tasks::task<int> (*main_function)(), int argc, char* argv[]);
135+
static int safe_run(xtd::threading::tasks::task<int> (*main_function)());
136+
static int safe_run(xtd::threading::tasks::task<int> (*main_function)(int, char* []), int argc, char* argv[]);
137+
static int safe_run(xtd::threading::tasks::task<int> (*main_function)(int, char* []));
138+
static int safe_run(xtd::threading::tasks::task<int> (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
139+
static int safe_run(xtd::threading::tasks::task<int> (*main_function)(const xtd::argument_collection&));
140+
141+
static int safe_run(xtd::threading::tasks::wtask<> (*main_function)(), int argc, char* argv[]);
142+
static int safe_run(xtd::threading::tasks::wtask<> (*main_function)());
143+
static int safe_run(xtd::threading::tasks::wtask<> (*main_function)(int, char* []), int argc, char* argv[]);
144+
static int safe_run(xtd::threading::tasks::wtask<> (*main_function)(int, char* []));
145+
static int safe_run(xtd::threading::tasks::wtask<> (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
146+
static int safe_run(xtd::threading::tasks::wtask<> (*main_function)(const xtd::argument_collection&));
147+
static int safe_run(xtd::threading::tasks::wtask<int> (*main_function)(), int argc, char* argv[]);
148+
static int safe_run(xtd::threading::tasks::wtask<int> (*main_function)());
149+
static int safe_run(xtd::threading::tasks::wtask<int> (*main_function)(int, char* []), int argc, char* argv[]);
150+
static int safe_run(xtd::threading::tasks::wtask<int> (*main_function)(int, char* []));
151+
static int safe_run(xtd::threading::tasks::wtask<int> (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
152+
static int safe_run(xtd::threading::tasks::wtask<int> (*main_function)(const xtd::argument_collection&));
108153
/// @endcond
109154

110155
private:
@@ -131,40 +176,81 @@ namespace xtd {
131176

132177
static int run(xtd::delegate<void()> main_function, int argc, char* argv[]);
133178
static int run(xtd::delegate<void()> main_function);
134-
static int run(xtd::threading::tasks::task<> (*main_function)(), int argc, char* argv[]);
135-
static int run(xtd::threading::tasks::task<> (*main_function)());
136-
static int run(xtd::threading::tasks::wtask<> (*main_function)(), int argc, char* argv[]);
137-
static int run(xtd::threading::tasks::wtask<> (*main_function)());
138-
static int run(void (*main_function)(), int argc, char* argv[]);
139-
static int run(void (*main_function)());
140179
static int run(xtd::delegate<void(int, char* [])> main_function, int argc, char* argv[]);
141180
static int run(xtd::delegate<void(int, char* [])> main_function);
142-
static int run(xtd::threading::tasks::task<> (*main_function)(int, char* []), int argc, char* argv[]);
143-
static int run(xtd::threading::tasks::task<> (*main_function)(int, char* []));
144-
static int run(xtd::threading::tasks::wtask<> (*main_function)(int, char* []), int argc, char* argv[]);
145-
static int run(xtd::threading::tasks::wtask<> (*main_function)(int, char* []));
146-
static int run(void (*main_function)(int, char* []), int argc, char* argv[]);
147-
static int run(void (*main_function)(int, char* []));
148181
static int run(xtd::delegate<void(const xtd::argument_collection&)> main_function, int argc, char* argv[]);
149182
static int run(xtd::delegate<void(const xtd::argument_collection&)> main_function);
150-
static int run(xtd::threading::tasks::task<> (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
151-
static int run(xtd::threading::tasks::task<> (*main_function)(const xtd::argument_collection&));
152-
static int run(xtd::threading::tasks::wtask<> (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
153-
static int run(xtd::threading::tasks::wtask<> (*main_function)(const xtd::argument_collection&));
154-
static int run(void (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
155-
static int run(void (*main_function)(const xtd::argument_collection&));
156183
static int run(xtd::delegate<int()> main_function, int argc, char* argv[]);
157184
static int run(xtd::delegate<int()> main_function);
158-
static int run(int (*main_function)(), int argc, char* argv[]);
159-
static int run(int (*main_function)());
160185
static int run(xtd::delegate<int(int, char* [])> main_function, int argc, char* argv[]);
161186
static int run(xtd::delegate<int(int, char* [])> main_function);
162-
static int run(int (*main_function)(int, char* []), int argc, char* argv[]);
163-
static int run(int (*main_function)(int, char* []));
164187
static int run(xtd::delegate<int(const xtd::argument_collection&)> main_function, int argc, char* argv[]);
165188
static int run(xtd::delegate<int(const xtd::argument_collection&)> main_function);
189+
190+
static int run(xtd::delegate<xtd::threading::tasks::task<>()> main_function, int argc, char* argv[]);
191+
static int run(xtd::delegate<xtd::threading::tasks::task<>()> main_function);
192+
static int run(xtd::delegate<xtd::threading::tasks::task<>(int, char* [])> main_function, int argc, char* argv[]);
193+
static int run(xtd::delegate<xtd::threading::tasks::task<>(int, char* [])> main_function);
194+
static int run(xtd::delegate<xtd::threading::tasks::task<>(const xtd::argument_collection&)> main_function, int argc, char* argv[]);
195+
static int run(xtd::delegate<xtd::threading::tasks::task<>(const xtd::argument_collection&)> main_function);
196+
static int run(xtd::delegate<xtd::threading::tasks::task<int>()> main_function, int argc, char* argv[]);
197+
static int run(xtd::delegate<xtd::threading::tasks::task<int>()> main_function);
198+
static int run(xtd::delegate<xtd::threading::tasks::task<int>(int, char* [])> main_function, int argc, char* argv[]);
199+
static int run(xtd::delegate<xtd::threading::tasks::task<int>(int, char* [])> main_function);
200+
static int run(xtd::delegate<xtd::threading::tasks::task<int>(const xtd::argument_collection&)> main_function, int argc, char* argv[]);
201+
static int run(xtd::delegate<xtd::threading::tasks::task<int>(const xtd::argument_collection&)> main_function);
202+
203+
static int run(xtd::delegate<xtd::threading::tasks::wtask<>()> main_function, int argc, char* argv[]);
204+
static int run(xtd::delegate<xtd::threading::tasks::wtask<>()> main_function);
205+
static int run(xtd::delegate<xtd::threading::tasks::wtask<>(int, char* [])> main_function, int argc, char* argv[]);
206+
static int run(xtd::delegate<xtd::threading::tasks::wtask<>(int, char* [])> main_function);
207+
static int run(xtd::delegate<xtd::threading::tasks::wtask<>(const xtd::argument_collection&)> main_function, int argc, char* argv[]);
208+
static int run(xtd::delegate<xtd::threading::tasks::wtask<>(const xtd::argument_collection&)> main_function);
209+
static int run(xtd::delegate<xtd::threading::tasks::wtask<int>()> main_function, int argc, char* argv[]);
210+
static int run(xtd::delegate<xtd::threading::tasks::wtask<int>()> main_function);
211+
static int run(xtd::delegate<xtd::threading::tasks::wtask<int>(int, char* [])> main_function, int argc, char* argv[]);
212+
static int run(xtd::delegate<xtd::threading::tasks::wtask<int>(int, char* [])> main_function);
213+
static int run(xtd::delegate<xtd::threading::tasks::wtask<int>(const xtd::argument_collection&)> main_function, int argc, char* argv[]);
214+
static int run(xtd::delegate<xtd::threading::tasks::wtask<int>(const xtd::argument_collection&)> main_function);
215+
216+
static int run(void (*main_function)(), int argc, char* argv[]);
217+
static int run(void (*main_function)());
218+
static int run(void (*main_function)(int, char* []), int argc, char* argv[]);
219+
static int run(void (*main_function)(int, char* []));
220+
static int run(void (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
221+
static int run(void (*main_function)(const xtd::argument_collection&));
222+
static int run(int (*main_function)(), int argc, char* argv[]);
223+
static int run(int (*main_function)());
224+
static int run(int (*main_function)(int, char* []), int argc, char* argv[]);
225+
static int run(int (*main_function)(int, char* []));
166226
static int run(int (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
167227
static int run(int (*main_function)(const xtd::argument_collection&));
228+
229+
static int run(xtd::threading::tasks::task<> (*main_function)(), int argc, char* argv[]);
230+
static int run(xtd::threading::tasks::task<> (*main_function)());
231+
static int run(xtd::threading::tasks::task<> (*main_function)(int, char* []), int argc, char* argv[]);
232+
static int run(xtd::threading::tasks::task<> (*main_function)(int, char* []));
233+
static int run(xtd::threading::tasks::task<> (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
234+
static int run(xtd::threading::tasks::task<> (*main_function)(const xtd::argument_collection&));
235+
static int run(xtd::threading::tasks::task<int> (*main_function)(), int argc, char* argv[]);
236+
static int run(xtd::threading::tasks::task<int> (*main_function)());
237+
static int run(xtd::threading::tasks::task<int> (*main_function)(int, char* []), int argc, char* argv[]);
238+
static int run(xtd::threading::tasks::task<int> (*main_function)(int, char* []));
239+
static int run(xtd::threading::tasks::task<int> (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
240+
static int run(xtd::threading::tasks::task<int> (*main_function)(const xtd::argument_collection&));
241+
242+
static int run(xtd::threading::tasks::wtask<> (*main_function)(), int argc, char* argv[]);
243+
static int run(xtd::threading::tasks::wtask<> (*main_function)());
244+
static int run(xtd::threading::tasks::wtask<> (*main_function)(int, char* []), int argc, char* argv[]);
245+
static int run(xtd::threading::tasks::wtask<> (*main_function)(int, char* []));
246+
static int run(xtd::threading::tasks::wtask<> (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
247+
static int run(xtd::threading::tasks::wtask<> (*main_function)(const xtd::argument_collection&));
248+
static int run(xtd::threading::tasks::wtask<int> (*main_function)(), int argc, char* argv[]);
249+
static int run(xtd::threading::tasks::wtask<int> (*main_function)());
250+
static int run(xtd::threading::tasks::wtask<int> (*main_function)(int, char* []), int argc, char* argv[]);
251+
static int run(xtd::threading::tasks::wtask<int> (*main_function)(int, char* []));
252+
static int run(xtd::threading::tasks::wtask<int> (*main_function)(const xtd::argument_collection&), int argc, char* argv[]);
253+
static int run(xtd::threading::tasks::wtask<int> (*main_function)(const xtd::argument_collection&));
168254
};
169255
}
170256

0 commit comments

Comments
 (0)