acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
system_apex.h
1//
2// Created by camilo on 2024-10-24 18:19 <3ThomasBorregaardSorensen!!
3//
4#pragma once
5
6
7#include "platform.h"
8#include "context.h"
9#include "acme/constant/os_text.h"
10#include "acme/prototype/prototype/factory.h"
11
12
13namespace platform
14{
15
16
18 {
19
20
21//
22//#ifndef WINDOWS
23//
24//
25// ::pointer<::exception_translator> m_pexceptiontranslator;
26//
27//
28//#endif
29
30 ::pointer < ::file::watcher > m_pfilewatcher;
31 //::pointer<::dump_context> m_pdumpcontext;
32
33 ::pointer<::networking::networking> m_pnetworking;
34
35 //::pointer<::crypto::crypto> m_pcrypto;
36
37 ::pointer<class machine_event_central> m_pmachinehappeningcentral;
38
39 ::pointer < ::mutex > m_pmutexUserAppData;
40 ::pointer < ::mutex > m_pmutexSystemAppData;
41
42 ::pointer<::operating_system::department> m_poperatingsystem;
43
44 ::pointer<::parallelization::threading> m_pthreading;
45 size_t m_nSafetyPoolSize; // ideal i32_size
46
47
48 ::pointer < ::input::input > m_pinput;
49
50 ::pointer < ::factory::factory > m_pfactoryCrypto;
51
52 string_array_base m_straCommandLineAccumul;
53 string_array_base m_straCommandLineExtra;
54 class ::time m_timeCommandLineLast;
55 ::i32 m_iCommandLineDelay;
56
57 bool m_bSystemSynchronizedCursor;
58 bool m_bSystemSynchronizedScreen;
59
60
61 ::pointer < ::manager_room > m_pmanagerroom;
62
63 ::pointer<class ::apex::history> m_phistory;
64
65
66 };
67
68
69
70 class CLASS_DECL_ACME apex_system_layer
71 {
72 public:
73
74
75
76
77 //virtual void _compress(const ::payload & payloadTarget, const ::payload & payloadSource, const ::scoped_string & scopedstrImplementation) override;
78 //virtual void _uncompress(const ::payload& payloadTarget, const ::payload& payloadSource, const ::scoped_string& scopedstrImplementation, transfer_progress_function transferprogressfunction = {}) override;
79
80 virtual void defer_innate_ui();
81
82
83#ifdef WINDOWS_DESKTOP
84
85#elif defined(UNIVERSAL_WINDOWS)
86
87 void system_construct(const ::string_array_base & stra);
88
89#else
90
91 void system_construct(const ::scoped_string & scopedstrCommandLine, const ::e_display& edisplay = ::e_display_none);
92
93#endif
94
95 //virtual void __task_init();
96
97
98 virtual class ::manager_room * manager_room();
99
100 virtual ::platform::application * get_main_app();
101
102
103 // virtual void init();
104 //
105 // virtual void inline_init();
106 // virtual void inline_term();
107 //
108 //
109 // virtual void init_system();
110 // virtual void term_system();
111 //
112 // virtual void on_system_construct();
113 //
114 // virtual void on_start_system();
115 //
116 // virtual void system_main();
117 //
118 // virtual void term();
119
120 //DECLARE_MESSAGE_HANDLER(on_message_erase_session);
121
122 virtual string get_application_server_name();
123
124 //virtual bool task_get_run() const;
125
126
127 virtual void create_os_node();
128
129
130 //::apex::node * node();
131
132
133 virtual ::file::watcher * file_watcher() const;
134
135
136 virtual ::input::input * input();
137
138
139 virtual ::factory::factory * node_factory();
140
141 // virtual void process_init();
142 //
143 // virtual void init1();
144 //
145 // virtual void init2();
146
147 //void defer_post_initial_request();
148
149 //void post_request(::request* prequest);
150
151 //virtual void initialize_context();
152
153
154 virtual ::pointer<::data::node>load_xml(const ::scoped_string & scopedstrXml);
155
156 //virtual void verb(); // ambigous inheritance from ::apex::system/::axis::application
157
158
159 //virtual bool is_system() const;
160
161
162 virtual string crypto_md5_text(const ::scoped_string & scopedstr);
163
164
165
166 // void on_request(::request * prequest);
167 //
168 // void destroy();
169 //
170
171 virtual void initialize_crypto();
172
173
174 virtual void process_exit_status(::object* pparticle, const ::e_status & estatus);
175
176
177 virtual void hist_hist(const ::scoped_string & scopedstr);
178
179
180
181 //virtual string ::url::encode(const ::scoped_string & scopedstr);
182
183
184 //virtual void locale_schema_matter(string_array_base & stra, const string_array_base & straMatterLocator, const ::scoped_string & scopedstrLocale, const ::scoped_string & scopedstrSchema);
185 //virtual string get_locale_schema_dir();
186
187 virtual ::operating_system::department * operating_system();
188
189 virtual class ::machine_event_central * machine_event_central();
190 virtual ::parallelization::threading * threading();
191
192
193 virtual ::networking::networking * networking();
194
195
196 virtual void on_allocation_error(const ::scoped_string & scopedstrName, ::object * pobjectSometimes);
197
198
199
200 //virtual void browser(const ::scoped_string & scopedstrUrl, const ::scoped_string & scopedstrBrowser, const ::scoped_string & scopedstrProfile, const ::scoped_string & scopedstrTarget);
201 //void open_internet_link(const ::scoped_string & scopedstrUrl, const ::scoped_string & scopedstrProfile, const ::scoped_string & scopedstrTarget) override;
202
203
204 //virtual void __set_thread_on();
205
206 //virtual string get_local_mutex_name(const ::scoped_string & scopedstrAppName);
207 //virtual string get_local_id_mutex_name(const ::scoped_string & scopedstrAppName, const ::scoped_string & scopedstrId);
208 //virtual string get_global_mutex_name(const ::scoped_string & scopedstrAppName);
209 //virtual string get_global_id_mutex_name(const ::scoped_string & scopedstrAppName, const ::scoped_string & scopedstrId);
210
211
212 virtual void initialize_networking();
213
214 //
215 // virtual bool on_get_task_name(string& strTaskName);
216 //
217
218
219 virtual ::u32 os_post_to_all_threads(::user::enum_message eusermessage, ::wparam wparam = {}, ::lparam lparam = {});
220
221
222 //
223 //
224 //
225 // virtual void init_task();
226 // virtual void term_task();
227 //
228 //
229 //
230 // virtual void thread_loop();
231 //
232 //
233 // virtual void post_pending_requests();
234 //
235 //
236 // virtual void term2();
237 //
238 // virtual void term1();
239 //
240 //
241 // virtual void TermSystem();
242 //
243 //
244 // virtual void process_term();
245 //
246
247
248
249
250
251 virtual ::i32 _001OnDebugReport(::i32 i1,const ::scoped_string & scopedstr1,::i32 i2,const ::scoped_string & scopedstr2,const ::scoped_string & scopedstr3,va_list args);
252 virtual ::i32 _debug_logging_report(::i32 iReportType, const ::scoped_string & scopedstrFilename, ::i32 iLinenumber, const ::scoped_string & scopedstrModuleName, const_char_pointer pszFormat, va_list list_base);
253 virtual bool assert_failed_line(const ::scoped_string & scopedstrFileName,::i32 iLine);
254
255 virtual bool on_assert_failed_line(const ::scoped_string & scopedstrFileName,::i32 iLine);
256
257
258
259
260
261
262 virtual void initialize_log(const ::scoped_string & scopedstrId);
263
264
265 virtual void appa_load_string_table();
266 virtual void appa_set_locale(const ::scoped_string & scopedstrLocale, const ::action_context & action_context);
267 virtual void appa_set_schema(const ::scoped_string & scopedstrStyle, const ::action_context & action_context);
268
269 virtual bool assert_running_global(const ::scoped_string & scopedstrAppName,const ::scoped_string & scopedstrId = nullptr);
270 virtual bool assert_running_local(const ::scoped_string & scopedstrAppName,const ::scoped_string & scopedstrId = nullptr);
271
272
273 virtual ::collection::count get_application_count();
274
275
276
277
278
279
280 virtual void install_progress_add_up(::i32 iAddUp = 1);
281
282
283
284
285
286
287
288 virtual void on_start_find_applications_from_cache();
289 //virtual void on_end_find_applications_from_cache(stream & is);
290
291 //virtual void on_end_find_applications_to_cache(stream & os);
292
293 virtual void on_map_application_library(::acme::library & library);
294
295
296 //void request(::request * prequest) override;
297
298
299#ifdef __ANDROID__
300//#pragma message("at macos??")
301 virtual bool android_set_user_wallpaper(const ::scoped_string & scopedstrUrl);
302 virtual bool android_get_user_wallpaper(string & strUrl);
303
304#endif
305
306 virtual bool defer_accumulate_on_open_file(string_array_base stra, const ::scoped_string & scopedstrExtra);
307
308 //virtual bool merge_accumulated_on_open_file(::request * prequest);
309
310 virtual bool on_open_file(::payload payloadFile, const ::scoped_string & scopedstrExtra);
311
312 virtual void on_open_file(const ::scoped_string & scopedstrFile);
313
314
315 virtual void on_os_text(enum_os_text etext, const ::scoped_string & scopedstrText);
316
317
318
319 virtual void on_extra(const ::scoped_string & scopedstr);
320
321 virtual string standalone_setting(const ::scoped_string & scopedstr);
322 virtual void set_standalone_setting(const ::scoped_string & scopedstr, const ::scoped_string & scopedstrSetting);
323
324
325 virtual void process_machine_event_data(machine_event_data * pdata);
326
327 virtual string get_user_language();
328 virtual void set_user_language(::apex::application * papp, ::collection::index iSel);
329 virtual void set_user_language(::apex::application * papp, const ::scoped_string & scopedstrLang);
330
331 virtual void chromium(const ::scoped_string & scopedstrUrl, const ::scoped_string & scopedstrBrowser, const ::scoped_string & scopedstrId, ::file::path path, const ::scoped_string & scopedstrProfile, const ::scoped_string & scopedstrParam);
332
333
334 virtual void defer_create_firefox_profile(::file::path pathFirefox, const ::scoped_string & scopedstrProfileName, ::file::path pathProfile);
335
336 virtual void firefox(const ::scoped_string & scopedstrUrl, const ::scoped_string & scopedstrBrowser, const ::scoped_string & scopedstrProfile, const ::scoped_string & scopedstrParam);
337
338
339
340
341 virtual void discard_to_factory(::pointer<object>pca);
342
343
344
345 //DECLARE_MESSAGE_HANDLER(on_application_signal);
346
347
348 virtual void set_history(::apex::history* phistory);
349
350
351
352
353 virtual ::apex::history * hist();
354
355
356
357 virtual bool sync_load_url(string& str, const ::scoped_string & scopedstrUrl, ::http::cookies* pcookies = nullptr);
358
359
360
361
362
363#ifdef UNIVERSAL_WINDOWS
364
365 virtual bool window_rectangle(::i32_rectangle* prectangle);
366
367
368#endif
369
370
371
372
373
374
375
376 virtual string get_host_location_url();
377
378 // virtual bool is_thread() const;
379 //
380 //
381 //
382 // // void assert_ok() const override;
383 // //void dump(dump_context& action_context) const override;
384 //
385 // virtual void main();
386
387
388 //virtual bool do_tasks();
389
390
391 virtual void post_quit_to_all_threads();
392 virtual void post_to_all_threads(::user::enum_message eusermessage, ::wparam wparam, ::lparam lparam);
393
394
395 virtual void dump_command_line_and_environment_variables_to_file();
396
397 virtual ::lresult system_id_topic(::i32 iId, ::i64 llWparam, ::i64 llLparam);
398
399
400 [[nodiscard]] virtual class ::handler::signal * signal(const ::atom& atom);
401
402
403 // virtual void add_handler(::particle * pmatter);
404 //
405 // virtual void add_signal_handler(::matter * pmatter, const ::atom & atomSignal);
406 //
407 // virtual void add_signal_handler(const ::signal_handler & signalhandler, const ::atom & atomSignal);
408 //
409 // virtual void erase_signal_handler(::matter * pmatter);
410 //
411 // virtual void erase_signal_handler(::signal_handler::base * pbase);
412
413 //void erase_signal_handlers(::particle * pparticle) override;
414
415 virtual void route_command(::message::command * pcommand, bool bRouteToKeyDescendant);
416
417 virtual void handle(::topic * ptopic, ::handler_context * phandlercontext);
418
419 virtual bool _handle_uri(const ::block & block);
420
421 virtual void application_main(::i32 argc, ::i8 * args[], const ::scoped_string & scopedstrCommandLine);
422
423 virtual ::i32 console_end(::e_status estatus);
424
425
426 //virtual void get_public_internet_domain_extension_list(string_array_base& stra) override;
427
428
429 ::string fetch_public_internet_domain_extension_list_text();
430
431 virtual void on_application_dark_mode_change() ;
432
433
434
435 };
436
437
438
439} // namespace platform
440
Definition library.h:10
Definition action_context.h:9
Definition atom.h:237
Definition e_status.h:30
Definition path.h:52
Definition handler_context.h:9
Definition list.h:33
Definition lparam.h:9
Definition bbb_object.h:11
Definition payload.h:54
Definition system_apex.h:71
Definition topic.h:17
Definition wparam.h:10
Definition solaris_file_watcher.cpp:34
include "thread/AutoLock.h"
Definition _forward_declaration.h:877
Definition block.h:46
Definition system_apex.h:18