acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
system.h
1
2// Offloading apex(TBS)::app_core from deep stack stuff into acme(CSTBS) ::system 2022-02-22 by camilo at 07:19 <3ThomasBorregaardSorensen!!
3#pragma once
4
5
6#include "acme/handler/handler.h"
7//#include "acme/platform/ini.h"
8#include "acme/platform/system_acme.h"
9#include "acme/platform/system_apex.h"
10#include "acme/platform/system_aqua.h"
11#include "acme/platform/system_aura.h"
12#include "acme/platform/system_axis.h"
13#include "acme/platform/system_core.h"
14#ifdef WINDOWS
15#include "acme/operating_system/windows_common/apartment_thread.h"
16#endif
17namespace platform
18{
19
20
21 class remoting;
22
37 class CLASS_DECL_ACME system :
38 virtual public ::platform::platform,
39 virtual public ::handler::handler,
40 virtual public ::platform::acme_system_layer_t,
46 virtual public ::platform::acme_system_layer,
47 virtual public ::platform::apex_system_layer,
48 virtual public ::platform::aqua_system_layer,
49 virtual public ::platform::aura_system_layer,
50 virtual public ::platform::axis_system_layer,
51 virtual public ::platform::core_system_layer,
52 virtual public ::task
53 {
54 public:
55
56
57 static ::platform::system * s_p;
58 ::pointer < ::platform::remoting > m_premoting;
59 //::pointer < ::platform::system > m_psystemComposite;
60
61 ::pointer < ::particle > m_pparticleHttpTextSynchronization;
62 ::string_map_base < ::string_to_string_base > m_mapText;
63 ::pointer < ::platform::application > m_papplicationMain;
64 //::pointer<::particle> m_pparticleSubsystem;
65#ifdef WINDOWS
66 ::pointer<::windows::apartment_thread>m_papartmentthread;
67#endif
68
69 system();
70 ~system() override;
71
72
73 virtual ::particle * matter_mutex() override;
74 //virtual ::particle * http_download_mutex() override;
75
76 //virtual ::string_array_base * http_download_array() override;
77 //virtual ::string_array_base * http_exists_array() override;
78
79 virtual class ::time * file_listing_cache_time() override;
80
81 virtual ::string http_text(const ::scoped_string & scopedstrPath, const ::scoped_string & scopedstrKey, const scoped_string & strLocale = "_std", const ::scoped_string & strSchema = "_std");
82
83 //void on_set_platform() override;
84
85// template < typename APPLICATION >
86// void main()
87// {
88//
89// auto pfactoryitem = allocateø ::factory::factory_item < APPLICATION, ::platform::application >;
90//
91// this->application_main(pfactoryitem);
92//
93// }
94
95 virtual void application_main();
96 virtual void transfer_application(::pointer < ::platform::application > && papplication);
97
98 ::task_message_queue * task_message_queue() override;
99
100
101 ::thread_storage * thread_storage(const ::task_index & taskindex) override;
102 ::thread_storage * _thread_storage_unlocked(const ::task_index & taskindex) override;
103#ifdef WINDOWS
104 virtual ::windows::apartment_thread * apartment_thread();
105#endif
106
107
108 void on_initialize_particle() override;
109
110
111 virtual void process_machine_event_data(machine_event_data * pdata) override;
112
113
114 virtual ::string get_subsystem_library_component_name();
115
116 virtual ::string get_operating_ambient();
117
118 virtual ::string get_user_toolkit_id();
119
120 virtual ::string get_nano_user_toolkit_id();
121
122 virtual ::string get_innate_ui_toolkit_id();
123
124 virtual ::string get_acme_windowing_toolkit_id();
125
126 virtual ::string get_subsystem_toolkit_id();
127
128 void do_operating_ambient_factory() override;
129
130 void do_graphics_factory() override;
131
132 void do_windowing_factory() override;
133
134 virtual void application_main(::platform::application * papplication);
135
136 virtual void initialize_layer();
137
138 virtual enum_trace_level get_trace_level() override;
139 //void os_construct();
140
141 virtual void defer_initialize_matter() override;
142
143
144#ifdef _DEBUG
145
146
147 ::i64 increment_reference_count() override;
148
149
150 ::i64 decrement_reference_count() override;
151
152
153#endif
154
155
156 //void prepare_application() override;
157
158 virtual void create_task_message_queue();
159 virtual void destroy_task_message_queue();
160
161
162 ::task* get_task(const ::task_index & taskindex);
163 //itask get_task_id(const ::task* ptask);
164 //void set_task(const ::task_index & taskindex, ::task* ptask);
165 //void unset_task(const ::task_index & taskindex, ::task* ptask);
166 void set_task(::task* ptask);
167 void unset_task(::task* ptask);
168
169 virtual bool is_task_set(const ::task_index & taskindex);
170 //virtual bool is_active(::task * ptask);
171 //virtual void set_task_on(const ::task_index & taskindex);
172 //virtual void set_task_off(const ::task_index & taskindex);
173
174
175 virtual ::mathematics::mathematics * mathematics() override;
176
177 virtual ::image::imaging * imaging() override;
178
179 // #if defined(WITH_X11) || defined(WITH_XCB)
180 // virtual ::particle * x11_synchronization();
181 // #endif
182
183 virtual ::networking::networking * networking() override;
184
185 virtual ::platform::remoting * remoting();
186
187 virtual ::platform::node * node() override;
188
189 virtual class ::base64 * base64() override;
190
191 virtual ::xml::xml * xml() override;
192
193 virtual ::file::watcher * file_watcher() const override;
194
195 virtual ::file_system * file_system() const;
196
197 virtual ::directory_system * directory_system() const;
198
199 virtual ::path_system * path_system() const;
200
201 ::platform::system_factory * system_factory() override;
202
203 ::xml::xml * _xml() override;
204
205 ::geometry::geometry * geometry() override;
206
207 ::datetime::datetime * datetime() override;
208
209 ::text::table * texttable() override;
210
211 ::internet::internet * internet() override;
212 ::url::url_context * url() override;
213
214 ::particle * ui_destroyed_synchronization() override;
215
216 ::nano::nano * nano() override;
217
218 ::micro::user * micro_user() override;
219 ::acme::windowing::windowing * acme_windowing() override;
220 ::windowing::windowing * windowing() override;
221
222 ::component * component(const ::scoped_string & scopedstrComponent)override;
223
224 //::string_table* string_table() override;
225
226 ::string component_path(const ::scoped_string & scopedstrComponent) override;
227
228 void defer_innate_ui() override;
229
230 ::innate_ui::innate_ui * innate_ui() override;
231
232 //virtual nano::nano * nano()
233
234 class ::manager_room * manager_room() override;
235
236 ::crypto::crypto * crypto() override;
237
238 //virtual ::acme::acme * acme() const ;
239
240 virtual::prototype::prototype * prototype() override;
241
242 virtual ::draw2d::draw2d * draw2d() override;
243 virtual ::write_text::write_text * write_text() override;
244
245 //virtual ::windowing::windowing_base * windowing_base();
246
247 virtual ::platform::subsystem *MainSubsystem() override;
248
249 virtual ::platform::ProfileLogger &ProfileLogger() override;
250
251 //virtual ::http_system * http_system();
252
253 virtual string get_system_platform() override;
254 //virtual string get_system_configuration() override;
255
256
257 //virtual void defer_post_file_open();
258
259 //virtual void defer_post_application_start_file_open_request();
260
261 virtual void defer_audio() override;
262
263 virtual bool has_audio() override;
264
265 virtual void init1() override;
266
267 virtual void init2() override;
268
269 //void set_current_handles() override;
270
271 virtual void TermSystem() override;
272
273
274 virtual void erase_from_any_hook(::matter * pmatter) override;
275
276
277 virtual void create_os_node(::platform::application * papplication) override;
278
279 virtual string os_get_user_theme() override;
280
281
282 template < typename BASE_TYPE >
283 ::pointer<BASE_TYPE> create(const ::scoped_string & scopedstrComponent, const ::scoped_string & scopedstrImplementation)
284 {
285
286#if REFERENCING_DEBUGGING
287
288 auto preferer = ::allocator::pop_referer();
289
290#endif
291
292 auto & pfactory = this->factory(scopedstrComponent, scopedstrImplementation);
293
294 if (!pfactory)
295 {
296
297 throw ::exception(error_resource);
298
299 }
300
301#if REFERENCING_DEBUGGING
302
303 ::allocator::_push_referer(preferer);
304
305#endif
306
307 auto p = pfactory->__call__create< BASE_TYPE >(this);
308
309 if (!p)
310 {
311
312 return p;
313
314 }
315
316 return p;
317
318 }
319
320
321 virtual ::u32 crc32(::u32 uCrc, const ::block & block) override;
322
323
324 using ::task::branch;
325
326 void branch(enum_parallelization eparallelization = e_parallelization_asynchronous, const create_task_attributes_t& createtaskattributes = {}) override;
327
328
329
330 virtual void create_session(::collection::index iEdge = 0) override;
331
332 virtual ::pointer<::platform::session>on_create_session(::collection::index iEdge) override;
333
334 virtual ::platform::session * session(::collection::index iEdge = 0) override;
335
336
337 virtual void add_session(::collection::index iEdge, ::platform::session * psession) override;
338 virtual void on_add_session(::platform::session * psession) override;
339 virtual void erase_session(::collection::index iEdge) override;
340
341 void set_finish() override;
342
343 void on_request(::request * prequest) override;
344
345
346 void process_exit_status(::particle * pparticle, const ::e_status & estatus);
347
348
349 virtual ::platform::application * get_main_app() override;
350
351
352 virtual ::factory::factory * folder_factory() override;
353
354
355 //using main::system_construct;
356
357
358 virtual void system_construct(::platform::application * pacmeapplicationStartup) override;
359
360#ifdef WINDOWS_DESKTOP
361
362 void system_construct(hinstance hinstanceThis, hinstance hPrevInstance, char_pointer pCmdLine, ::i32 nCmdShow);
363
364#elif defined(UNIVERSAL_WINDOWS)
365
366 void system_construct(const ::string_array_base & stra);
367
368 //#else
369
370 //void system_construct(const ::scoped_string & scopedstrCommandLine, const ::e_display& edisplay = ::e_display_none);
371
372#endif
373
374 virtual void speak(const ::scoped_string & scopedstr, const ::scoped_string & scopedstrLang = "en-us", enum_gender egender = e_gender_none) override;
375
376
377 virtual ::factory::factory * node_factory() override;
378
379
380 virtual void inline_init() override;
381 virtual void inline_term() override;
382
383
384 virtual void process_init() override;
385
386
388
389
390 virtual void init_system() override;
391 virtual void term_system() override;
392
393 //::request *application_start_file_open_request() override;
394 //virtual void on_start_system() override;
395
396
397 //virtual void defer_post_initial_request() override;
398
399
400 //void defer_start_system() override;
401
402
403
404 //void post_application_start() override;
405
406 //void defer_post_application_start_file_open_request() override;
407
408 //void post_application_started() override;
409
410
411
412 virtual void canonical_system_main() override;
413
414 virtual void system_main() override;
415
416
417 //void on_pre_run_task() override;
418
419
420 virtual void on_branch_system_from_main_thread_startup(::task_handler * ptaskhandler) override;
421
422
423 void main() override;
424
425
426 virtual ::pointer<::platform::application> new_app(const ::scoped_string & scopedstrAppId) override;
427
428
429 virtual void end() override;
430
431
432 virtual void on_end() override;
433
434
435 virtual void report_system_instance() override;
436
437 //using ::manager::on_subject;
438 //virtual void on_subject(::topic * ptopic) override;
439
440 virtual class ::time get_update_poll_time(const ::atom & atom) override;
441
442
443 virtual ::acme::library * on_get_library(const ::scoped_string & scopedstrLibrary) override;
444
445
446
447
448 //virtual ::pointer<::acme::library> & library(const ::scoped_string & scopedstrComponent, const ::scoped_string & scopedstrImplementation);
449
450
451 virtual void open_internet_link(const ::scoped_string & scopedstrUrl, const ::scoped_string & scopedstrProfile = {}, const ::scoped_string & scopedstrTarget = {}) override;
452 virtual void open_internet_link_in_browser(const ::scoped_string & scopedstrUrl, const ::scoped_string & scopedstrBrowser, const ::scoped_string & scopedstrProfile = {}, const ::scoped_string & scopedstrTarget = {}) override;
453// virtual void open_url(const ::scoped_string & scopedstrUrl, const ::scoped_string & scopedstrProfile, const ::scoped_string & scopedstrTarget) override;
454
455
456 bool _handle_uri(const ::block & block) override;
457
458
459 //void __tracea(enum_trace_level elevel, const ::scoped_string & scopedstrFunction, const ::scoped_string & scopedstrFile, ::i32 iLine, const ::scoped_string & scopedstr) const override;
460
461
462 //virtual void main_user_async(const ::procedure & procedure, ::enum_priority epriority = e_priority_normal);
463
464 //virtual void main_user_sync(const ::procedure & procedure, const class time & time = one_minute(), enum_priority epriority = e_priority_normal);
465
466
467 void init_task() override;
468 void term_task() override;
469
470
471 string __get_text(const ::scoped_string & scopedstr) override;
472
473#ifdef LINUX
474
476
477#endif
478
479
480 //pointer< ::extended::sequence < ::conversation > > message_box(::user::interaction * puserinteraction, const ::scoped_string & scopedstrMessage, const ::scoped_string & scopedstrTitle = nullptr, const ::user::e_message_box & emessagebox = ::user::e_message_box_ok) override;
481
482
483 //virtual void on_initialize_window_object();
484 //virtual void _on_initialize_window_object();
485
486//
487// template < typename ENUM >
488// inline void set_enum_text(ENUM e, const ::scoped_string & scopedstr)
489// {
490//
491// critical_section_lock synchronouslock(&m_csEnumText);
492//
493// m_mapEnumToText[::type<e>().name()][(::i64)e] = psz;
494//
495// m_mapTextToEnum[::type<e>().name()][psz] = (::i64)e;
496//
497// }
498
499//
500// template < typename ENUM >
501// inline string enum_text(ENUM e)
502// {
503//
504// critical_section_lock synchronouslock(&m_csEnumText);
505//
506// return m_mapEnumToText[::type<e>().name()][(::i64)e];
507//
508// }
509
510//
511// template < class ENUM >
512// inline ENUM text_enum(ENUM& e, const ::scoped_string & scopedstr, ENUM eDefault = (ENUM)0)
513// {
514//
515// critical_section_lock lock(&m_csEnumText);
516//
517// ::i64 iValue;
518//
519// if (m_mapTextToEnum[::type<e>().name()].find(scopedstr, iValue))
520// {
521//
522// e = (ENUM)iValue;
523//
524// }
525// else
526// {
527//
528// e = eDefault;
529//
530// }
531//
532// return e;
533//
534// }
535//
536//
537// template < class ENUM, ENUM edefault = 0>
538// inline base_enum < ENUM, edefault >& text_enum(base_enum < ENUM, edefault >& b, const ::scoped_string & scopedstr, ENUM eDefault = edefault)
539// {
540//
541// return b = text_enum(b.m_evalue, psz, eDefault);
542//
543// }
544
545//
546// template < class ENUM, ENUM edefault = 0>
547// inline string enum_text(const base_enum < ENUM, edefault >& b)
548// {
549//
550// return enum_text(b.m_evalue, (::i64)(ENUM)b);
551//
552// }
553
554
555 ::task_group * task_group(::enum_priority epriority = ::e_priority_none);
556
557 ::task_tool * task_tool(::enum_task_tool etool);
558
559
560 virtual void show_operating_system_information_box(::user::activation_token *puseractivationtoken);
561
562
563 static inline ::atom atom(const ::std::type_info & info);
564 static inline ::atom atom(const ::scoped_string & scopedstr);
565 static inline ::atom atom(const ::string & str);
566 static inline ::atom atom(::i64 i);
567 //static inline ::atom_space & atom();
568 inline ::atom atom(const ::payload & payload);
569 inline ::atom atom(const ::property & property);
570
571 virtual void check_exit() override;
572
573 virtual ::regular_expression_pointer create_regular_expression(const ::scoped_string & scopedstrStyle, const ::scoped_string & scopedstr) override;
574 //virtual ::pointer<::regular_expression::context> create_regular_expression_context(const ::scoped_string & scopedstrStyle, ::i32 iCount);
575 virtual ::pointer<::regular_expression::context> get_regular_expression_context(const ::scoped_string & scopedstrStyle) override;
576
577 virtual ::regular_expression_pointer compile_pcre(const ::scoped_string & scopedstr) override;
578 virtual ::pointer<::regular_expression::context> get_pcre_context() override;
579 //virtual ::i32 system::pcre_add_tokens(string_array_base& stra, const ::scoped_string & scopedstrTopic, const ::scoped_string & scopedstrRegexp, ::i32 nCount)
580
581 virtual void get_public_internet_domain_extension_list(string_array_base & stra) override;
582 virtual ::string fetch_public_internet_domain_extension_list_text() override;
583
584 ::lresult system_id_topic(::i32 iId, ::i64 llWparam, ::i64 llLparam) override;
585
586 void handle(::topic * ptopic, ::handler_context * phandlercontext) override;
587
588 ::lresult call_message(const ::user::enum_message & emessage, ::wparam wparam, ::lparam lparam, ::particle* pparticle) override;
589
590
591 //virtual void add_handler(::particle * pmatter, bool bPriority = false);
592
593 //virtual void add_signal_handler(const ::signal_handler & signalhandler, const ::atom & atomSignal) override;
594
595 //virtual void erase_signal_handler(::signal_handler::base * pbase) override;
596
597 //virtual void erase_signal_handlers(::particle * ppparticle);
598
599 virtual void node_will_finish_launching() override;
600
601 virtual void node_did_finish_launching() override;
602
603 virtual void on_open_untitled_file() override;
604
605 virtual void on_open_file(const ::scoped_string & scopedstrFile) override;
606
607 //template < typename BASE_TYPE >
608 //::pointer<BASE_TYPE> create(const ::scoped_string & scopedstrComponent, const ::scoped_string & scopedstrImplementation)
609 //{
610
611 // auto plibrary = ([a-z0-9_]+)_factory(scopedstrComponent, pszImplementation);
612
613 // if (!plibrary)
614 // {
615
616 // return error_not_found;
617
618 // }
619
620 // auto p = plibrary->create<BASE_TYPE>();
621
622 // if (!p)
623 // {
624
625 // return error_not_found;
626
627 // }
628
629 // return p;
630
631 //}
632
633
634 ::pointer < ::compress> _new_compress(const ::scoped_string & scopedstrImplementation);
635 ::pointer < ::uncompress> _new_uncompress(const ::scoped_string & scopedstrImplementation);
636
637 ::pointer < ::compress> new_zlib_compress();
638 ::pointer < ::uncompress> new_zlib_uncompress();
639
640 virtual void _compress(const ::payload & payloadTarget, const ::payload & payloadSource, const ::scoped_string & scopedstrImplementation) override;
641 virtual void _uncompress(const ::payload & payloadTarget, const ::payload & payloadSource, const ::scoped_string & scopedstrImplementation, transfer_progress_function transferprogressfunction = {}) override;
642
643 virtual void zlib_compress(const ::payload & payloadTarget, const ::payload & payloadSource) override;
644 virtual void zlib_uncompress(const ::payload & payloadTarget, const ::payload & payloadSource, transfer_progress_function transferprogressfunction = {}) override;
645
646 virtual bool fast_is_decompressable_folder(const ::file::path & path) override;
647
648 //virtual void windowing_send(const ::procedure & procedure);
649 //virtual void windowing_post(const ::procedure & procedure);
650
651
652 void post(const ::procedure & procedure) override;
653
654
655 bool _handle_call(::payload & payload, const ::scoped_string & scopedstrObject, const ::scoped_string & scopedstrMember, ::property_set & propertyset) override;
656
657
658 virtual string get_latest_deployment_number(const ::scoped_string & scopedstrBranch) override;
659
660
661 void destroy() override;
662
663
664
665
666
667 //CLASS_DECL_ACME ::acme::library * lib(const ::scoped_string & scopedstr);
668
669
670
671 //::file::path library_file_name(const ::scoped_string & scopedstr);
672
673
674 //template < typename ENTRY >
675 //ENTRY* library_call(const ::scoped_string & scopedstrLibrary, const ::scoped_string & scopedstrEntry)
676 //{
677
678 // return lib(scopedstrLibrary)->get<decltype(&ENTRY)>(scopedstrEntry));
679
680 //}
681
682//#define LIBCALL(library, entry) (system()->lib(#library)->get<decltype(&entry)>(#entry))
683
684
685 virtual ::string implementation_name(const ::scoped_string & scopedstrComponent, const ::scoped_string & scopedstrImplementation) override;
686 virtual ::string library_name(const ::scoped_string & scopedstrComponent, const ::scoped_string & scopedstrImplementation) override;
687
688
689
690 //class ::crypto::crypto * crypto();
691
692
693 virtual ::file::path local_get_matter_cache_path() override;
694 virtual ::file::path local_get_matter_cache_path(const ::scoped_string & scopedstrMatter) override;
695 virtual ::file::path local_get_matter_path() override;
696 virtual ::file::path local_get_matter_path(const ::scoped_string & scopedstrMatter) override;
697
698
699 virtual void install_progress_add_up(::i32 iAddUp = 1) override;
700
701 virtual bool is_operating_system_package_installed(const ::scoped_string & scopedstrPackageName);
702 virtual ::string_array_base not_installed_operating_system_packages(const ::string_array_base & straPackageNames);
703 virtual ::string install_operating_system_packages_command_line(const ::string_array_base & straPackageNames);
704 virtual ::string install_operating_system_package_file_command_line(const ::file::path & pathPackageFile);
705 virtual ::string defer_install_operating_system_packages(const ::string_array_base & straPackageNames);
706 virtual void defer_run_operating_system_package_installation_update_and_or_upgrade();
707
708
709 virtual ::string get_application_server_name() override;
710
711
712 virtual ::color::color background_color() const override;
713
714 virtual ::f64 luminance() const override;
715
716 virtual void set_background_color(const ::color::color & color) override;
717
718
719 virtual bool dark_mode() const override;
720 virtual class ::time dark_mode_time() const override;
721 virtual void set_dark_mode_time(const class ::time & time) override;
722 virtual void on_application_dark_mode_change() override;
723
724 // virtual ::i32 get_simple_ui_darkness();
725
726 // virtual void set_simple_ui_darkness(::i32 iWeatherDarkness);
727
728 virtual void set_dark_mode(bool bDark) override;
729
730 virtual ::color::color get_simple_ui_color(const ::e_element & eelement, const ::user::e_state & estate = ::user::e_state_none) override;
731
732 virtual ::color::color get_default_color(::color::color color) override;
733
734
735 // #if defined(WITH_X11)
736 // virtual void x11_sync(const ::procedure & procedure);
737 // virtual void x11_async(const ::procedure & procedure);
738 // #endif
739
740 virtual bool defer_component_factory(const ::scoped_string & scopedstrComponent) override;
741 virtual bool _defer_component_factory(const ::scoped_string & scopedstrComponent) override;
742
743 //::pointer < ::message_box_payload > & realize(::pointer < ::message_box_payload > & pmessagebox);
744
745 //::pointer < ::message_box_payload > message_box(const ::scoped_string & scopedstrMessage, const ::scoped_string & scopedstrTitle = nullptr, const ::user::e_message_box & emessagebox = ::user::e_message_box_ok, const ::scoped_string & scopedstrDetails = nullptr, ::nano::graphics::icon * picon = nullptr);
746
747 //::pointer < ::message_box_payload > exception_message_box(const ::exception & exception, const ::scoped_string & scopedstrMessage = nullptr, const ::scoped_string & scopedstrTitle = nullptr, const ::user::e_message_box & emessagebox = ::user::e_message_box_ok, const ::scoped_string & scopedstrDetails = nullptr, ::nano::graphics::icon * picon = nullptr);
748
749 //::pointer < ::message_box_payload > message_console(const ::scoped_string & scopedstrMessage = nullptr, const ::scoped_string & scopedstrTitle = nullptr, const ::user::e_message_box & emessagebox = ::user::e_message_box_ok, const ::scoped_string & scopedstrDetails = nullptr, ::nano::graphics::icon * picon = nullptr);
750
751 //::pointer < ::message_box_payload > exception_message_console(const ::exception & exception, const ::scoped_string & scopedstrMessage = nullptr, const ::scoped_string & scopedstrTitle = nullptr, const ::user::e_message_box & emessagebox = ::user::e_message_box_ok, const ::scoped_string & scopedstrDetails = nullptr, ::nano::graphics::icon * picon = nullptr);
752
753
754
755// // ::aura::system
756//
757//
758// void common_construct();
759//
760// //void on_set_platform() override;
761//
762// //void on_initialize_particle() override;
763//
764// ///void on_add_session(::platform::session * papexsession) override;
765//
766// virtual void init();
767// //virtual void init_instance() override;
768// //virtual void term_instance() override;
769// //void inline_init() override;
770// //void inline_term() override;
771//
772// //void TermSystem() override;
773//
774// virtual void on_finish_launching();
775//
776//
777// //#ifdef LINUX
778// //
779// // virtual void os_application_system_run() override;
780// //
781// //#endif
782//
783//
784// // virtual void init_system() override;
785// // virtual void term_system() override;
786//
787//
788// //virtual void system_main() override;
789//
790// virtual void term();
791//
792// //virtual void system_prep() override;
793//
794// //::url::url & url() { return m_urldepartment; }
795//
796// //::thread * get_task(itask itask);
797// //itask get_thread_id(::thread * pthread);
798// //void set_thread(itask itask, ::thread * pthread);
799// //void unset_thread(itask itask, ::thread * pthread);
800//
801// virtual ::aura::estamira * estamira();
802//
803// virtual ::hardware::devices * hardware_devices();
804//
805// virtual void defer_initialize_hardware_devices();
806//
807//
808//
809// ::aura::session * get_session();
810// //::aura::node * node();
811//
812// virtual ::gpu::approach * get_gpu();
813// virtual ::gpu::approach * gpu();
814// virtual void create_gpu();
815//
816//
817// //virtual string install_get_platform() override;
818// //virtual void install_set_platform(const ::scoped_string & scopedstrPlatform) override;
819// //virtual string install_get_version() override;
820// //virtual void install_set_version(const ::scoped_string & scopedstrVersion) override;
821// //virtual string install_get_latest_build_number(const ::scoped_string & scopedstrVersion) override;
822// //virtual ::i32 install_start(const ::scoped_string & scopedstrCommandLine, const ::scoped_string & scopedstrBuild) override;
823// //virtual ::i32 install_progress_app_add_up(::i32 iAddUp = 1) override;
824//
825// //virtual ::install::canvas * install_create_canvas();
826// //virtual void install_canvas_on_paint(::draw2d::graphics_pointer & pgraphics, const ::i32_rectangle & rectangle);
827// //virtual ::i32 install_canvas_increment_mode();
828//
829// //virtual string install_get_platform() override;
830// //virtual void install_set_platform(const ::scoped_string & scopedstrPlatform) override;
831// //virtual string install_get_version() override;
832// //virtual void install_set_version(const ::scoped_string & scopedstrVersion) override;
833// //virtual string install_get_latest_build_number(const ::scoped_string & scopedstrVersion) override;
834// //virtual ::i32 install_start(const ::scoped_string & scopedstrCommandLine, const ::scoped_string & scopedstrBuild) override;
835// //virtual ::i32 install_progress_app_add_up(::i32 iAddUp = 1) override;
836//
837// //virtual ::pointer<::factory::factory> & node_factory() override;
838//
839// //virtual void process_init() override;
840//
841// //virtual void init1() override;
842//
843// //virtual void init2() override;
844//
845// //virtual void initialize_system();
846//
847// //virtual void defer_xml();
848//
849//
850// //void node_will_aaa_finish_launching() override;
851//
852//
853//
854// virtual ::pointer<::data::node>load_xml(const ::scoped_string & scopedstrXml);
855//
856// virtual void verb(); // ambigous inheritance from ::aura::system/::axis::application
857//
858//
859// //virtual bool is_system() const override;
860//
861//
862// virtual string crypto_md5_text(const ::scoped_string & scopedstr);
863//
864//
865// //virtual pointer< ::extended::future < ::conversation > > _message_box(::acme::windowing::window * pacmewindowingwindow, const ::scoped_string & scopedstrMessage, const ::scoped_string & scopedstrTitle = nullptr, const ::user::e_message_box & emessagebox = ::user::e_message_box_ok) override;
866// //virtual ::enum_dialog_result message_box_timeout(const ::scoped_string & scopedstrMessage, const ::scoped_string & scopedstrTitle = nullptr, const class time & timeTimeout = ::time::infinite(), const ::user::e_message_box & emessagebox = ::user::e_message_box_ok, const ::future & future = ::future()) override;
867//
868//
869// //virtual void create_html();
870//
871// //virtual ::pointer<::aura::session>on_create_session() override;
872//
873// //virtual void on_request(::request * prequest) override;
874//
875// //virtual void construct(const ::scoped_string & scopedstrAppId);
876//
877// //virtual bool initialize_application() override;
878//
879// //virtual ::i32 exit_instance();
880// //virtual bool destroy();
881//
882// //virtual void destroy() override;
883// //virtual bool verb();
884//
885// //virtual void main_user_async(const ::procedure & procedure, ::enum_priority epriority = e_priority_normal) override;
886//
887//
888// //virtual bool process_initialize();
889//
890// //virtual bool process_init();
891//
892// //virtual bool init1();
893//
894// //virtual bool init2();
895//
896// //virtual bool is_system();
897//
898//
899//
900// //virtual ::aura::session * query_session(::collection::index iEdge) override;
901// //virtual string dir_appmatter_locator(::particle * pparticle);
902//
903//
904// //virtual void hist_hist(const ::scoped_string & scopedstr);
905//
906//
907// //virtual void on_request(::request * prequest) override;
908//
909//
910// //virtual ::u32 crc32(::u32 dwPrevious, const ::scoped_string & scopedstr);
911//
912//
913// //virtual string ::url::encode(const ::scoped_string & scopedstr) override;
914//
915//
916// //virtual void locale_schema_matter(string_array_base & stra, const string_array_base & straMatterLocator, const ::scoped_string & scopedstrLocale, const ::scoped_string & scopedstrSchema) override;
917// //virtual string get_locale_schema_dir() override;
918//
919//
920// //virtual void initialize_system(::particle * pparticle, app_core * pappcore);
921//
922//
923// //::pointer<::thread_tools>create_thread_tools(::enum_task_tool etool);
924// //thread_tools * tools(::enum_priority epriority);
925// //thread_toolset * toolset(e_tool etool);
926//
927// //class ::user::window_map & window_map();
928//
929//
930// //::pointer<::acme::library>open_component_library(const ::scoped_string & scopedstrComponent, const ::scoped_string & scopedstrImplementation);
931//
932// //void ([a-z0-9_]+)_factory(const ::scoped_string & scopedstrComponent, const ::scoped_string & scopedstrImplementation);
933//
934// //void ([a-z0-9_]+)_factory(const ::scoped_string & scopedstrComponent, const ::scoped_string & scopedstrImplementation, PFN_factory pfnFactoryExchange);
935//
936//
937// //class ::aura::os & os();
938// //class base_factory & factory_item();
939//
940//
941// //::aura::str & str();
942// //::operating_system::department & process();
943//
944//
945// //::xml::department & xml();
946// //class ::base64 & base64();
947// //class ::aura::plogwriter & plogwriter();
948// //class ::machine_event_central & machine_event_central();
949// //inline ::parallelization::threading * threading() { return m_pthreading; }
950//
951// //geometry::geometry & geometry()
952// //{
953//
954// // return *m_pgeometry;
955//
956// //}
957// //inline class imaging & imaging() { return *m_pimaging; }
958//
959// //virtual ::sockets::sockets & sockets() { return *m_psockets; }
960//
961// //math::math & math()
962// //{
963//
964// // return *m_pmath;
965//
966// //}
967//
968//
969// //class ::draw2d::draw2d * draw2d() const override;
970//
971// //class ::write_text::write_text * write_text() const override;
972//
973//
974// //class ::image::imaging * imaging() override;
975//
976//
977// //inline ::url::url & url()
978// //{
979//
980// // return *m_purldepartment; // only usable from base.dll and dependants
981//
982// //}
983//
984//
985// //inline class ::compress_department & compress()
986// //{
987//
988// // return *m_pcompress; // only usable from base.dll and dependants
989//
990// //}
991// //inline ::file::system_dir & dir() { return *m_spdir; }
992// //inline ::file::system_file & file() { return *m_spfile; }
993//
994//
995// //::net::email_department & email();
996//
997// //::pointer<::account::user_set> userset();
998//
999// //::datetime::datetime & datetime();
1000//
1001//
1002// //virtual string ::url::encode(const ::scoped_string & scopedstr);
1003//
1004// virtual void on_allocation_error(const ::scoped_string & scopedstrName, ::object * pobjectSometimes);
1005//
1006// //::pointer< ::mutex > get_openweather_city_mutex();
1007//
1008//
1009// template < typename T >
1010// inline T * cast_clone(T * p)
1011// {
1012//
1013// return ::clone(p);
1014//
1015// }
1016//
1017//
1018// //virtual void browser(const ::scoped_string & scopedstrUrl, const ::scoped_string & scopedstrBrowser, const ::scoped_string & scopedstrProfile, const ::scoped_string & scopedstrTarget) override;
1019// //virtual void open_profile_link(const ::scoped_string & scopedstrUrl, const ::scoped_string & scopedstrProfile, const ::scoped_string & scopedstrTarget) override;
1020// //virtual void open_link(const ::scoped_string & scopedstrUrl, const ::scoped_string & scopedstrProfile, const ::scoped_string & scopedstrTarget) override;
1021// //virtual void open_url(const ::scoped_string & scopedstrUrl, const ::scoped_string & scopedstrProfile, const ::scoped_string & scopedstrTarget) override;
1022//
1023//
1024// //virtual void __set_thread_on() override;
1025//
1026// //virtual string get_local_mutex_name(const ::scoped_string & scopedstrAppName) override;
1027// //virtual string get_local_id_mutex_name(const ::scoped_string & scopedstrAppName, const ::scoped_string & scopedstrId) override;
1028// //virtual string get_global_mutex_name(const ::scoped_string & scopedstrAppName) override;
1029// //virtual string get_global_id_mutex_name(const ::scoped_string & scopedstrAppName, const ::scoped_string & scopedstrId) override;
1030//
1031//
1032// //template < class T >
1033// //::platform::type * type_info()
1034// //{
1035//
1036// // return get_type_info(::type<T>());
1037//
1038// //}
1039//
1040//
1041// //virtual ::platform::type * get_type_info(const ::std::type_info & info);
1042//
1043// //::platform::type * get_type_info(const ::atom & idType)
1044// //{
1045//
1046// // if(idType.is_empty())
1047// // return nullptr;
1048//
1049// // synchronous_lock synchronouslock(m_pmutexFactory, DEFAULT_SYNCHRONOUS_LOCK_SUFFIX);
1050//
1051// // return m_typemap[idType].m_p;
1052//
1053// //}
1054//
1055//
1056// //virtual void discard_to_factory(::object * pca);
1057//
1058// bool on_application_menu_action(const ::scoped_string & scopedstrCommand);
1059//
1060//
1061// //virtual void initialize_sockets();
1062//
1063//
1064// //virtual bool on_get_thread_name(string& strThreadName) override;
1065//
1066// //virtual ::acme::library * on_get_library(const ::scoped_string & scopedstrLibrary) override;
1067//
1068// //virtual ::acme::library * get_library(const ::scoped_string & scopedstrLibrary, bool bOpenCa2 = false) override;
1069//
1070//
1071// //virtual ::u32 os_post_to_all_threads(const ::atom & atom,const ::wparam & wparam = {},const ::lparam & lparam = {}) override;
1072//
1073//
1074// //virtual void session_add(::collection::index iEdge, ::apex::session * psession) overr;
1075// //virtual void session_erase(::collection::index iEdge);
1076//
1077//
1078//
1079// //virtual void init_system();
1080//
1081// //virtual void process_init();
1082//
1083// virtual void initialize_draw2d();
1084// //virtual void initialize_write_text();
1085// virtual ::pointer<::factory::factory> & draw2d_factory();
1086// virtual ::string draw2d_get_default_implementation_name();
1087//
1088// virtual ::pointer<::factory::factory> & imaging_factory();
1089// virtual ::string imaging_get_default_implementation_name();
1090//
1091// //virtual void init_task() override;
1092// //virtual void term_task() override;
1093//
1094//
1095// virtual void thread_loop();
1096//
1097// //virtual void init();
1098//
1099// //virtual void init1();
1100//
1101// //virtual void init2();
1102//
1103// //virtual void post_creation_requests() override;
1104//
1105// //virtual void term_system();
1106//
1107// virtual void term2();
1108//
1109// virtual void term1();
1110//
1111// //virtual void term();
1112//
1113// //virtual void TermSystem() override;
1114//
1115//
1116// virtual void process_term();
1117//
1118//
1119// //virtual bool is_system() const override;
1120// /* static inline ::atom atom(const ::std::type_info & info);
1121// static inline ::atom atom(const ::scoped_string & scopedstr);
1122// static inline ::atom atom(const ::scoped_string & scopedstr);
1123// static inline ::atom atom(::i64 i);
1124// static inline ::atom_space & atom();
1125// inline ::atom atom(const ::payload & payload);
1126// inline ::atom atom(const property & prop);*/
1127//
1128//
1129// //virtual ::i32 _001OnDebugReport(::i32 i1, const ::scoped_string & scopedstr1,::i32 i2, const ::scoped_string & scopedstr2, const ::scoped_string & scopedstr3,va_list args) override;
1130// //virtual ::i32 _debug_logging_report(::i32 iReportType, const ::scoped_string & scopedstrFilename, ::i32 iLinenumber, const ::scoped_string & scopedstrModuleName, const ::scoped_string & scopedstrFormat, va_list list_base) override;
1131// //virtual bool assert_failed_line(const ::scoped_string & scopedstrFileName,::i32 iLine) override;
1132//
1133// //virtual bool on_assert_failed_line(const ::scoped_string & scopedstrFileName,::i32 iLine) override;
1134//
1135//
1136// //virtual void initialize_log(const ::scoped_string & scopedstrId) override;
1137//
1138//
1139// //virtual void appa_load_string_table() override;
1140// //virtual void appa_set_locale(const ::scoped_string & scopedstrLocale, const ::action_context & action_context) override;
1141// //virtual void appa_set_schema(const ::scoped_string & scopedstrStyle, const ::action_context & action_context) override;
1142//
1143// //virtual bool assert_running_global(const ::scoped_string & scopedstrAppName, const ::scoped_string & scopedstrId = nullptr) override;
1144// //virtual bool assert_running_local(const ::scoped_string & scopedstrAppName, const ::scoped_string & scopedstrId = nullptr) override;
1145//
1146// //::pointer<application>assert_running(const ::scoped_string & scopedstrAppId);
1147//
1148// /* virtual ::collection::count get_application_count() override;
1149// */
1150//
1151// //virtual string crypto_md5_text(const ::scoped_string & scopedstr);
1152//
1153// //inline class ::http::system & http()
1154// //{
1155// // return *m_sphttpsystem;
1156// //}
1157//
1158// //class ::crypto::crypto & crypto();
1159//
1160//
1161// //virtual void start() override;
1162//
1163// //virtual ::file::path local_get_matter_cache_path() override;
1164// //virtual ::file::path local_get_matter_cache_path(const ::scoped_string & scopedstrMatter) override;
1165// //virtual ::file::path local_get_matter_path() override;
1166// //virtual ::file::path local_get_matter_path(const ::scoped_string & scopedstrMatter) override;
1167//
1168// //virtual bool find_applications_from_cache() override;
1169// //virtual bool find_applications_to_cache(bool bSave = true) override;
1170// //virtual bool map_application_library(const ::scoped_string & scopedstrLibrary) override;
1171//
1172//
1173// //virtual void install_progress_add_up(::i32 iAddUp = 1) override;
1174//
1175// //virtual void create_session(::collection::index iEdge = 0) override;
1176//
1177// /*virtual ::pointer<::apex::session>on_create_session(::collection::index iEdge) override;
1178//
1179// virtual ::apex::session * session(::collection::index iEdge = 0) override;*/
1180//
1181// //virtual void on_request(::request * prequest) override;
1182//
1183// //::pointer<regex>create_regular_expression(const ::scoped_string & scopedstrStyle, const ::scoped_string & scopedstr);
1184// //::pointer<regex_context>create_regular_expression_context(const ::scoped_string & scopedstrStyle, ::i32 iCount);
1185// //virtual ::i32 pcre_add_tokens(string_array_base& stra, const ::scoped_string & scopedstrTopic, const ::scoped_string & scopedstrRegexp, ::i32 nCount);
1186//
1187//
1188// //virtual string get_system_platform() override;
1189// //virtual string get_system_configuration() override;
1190// //virtual string get_latest_build_number(const ::scoped_string & scopedstrConfiguration, const ::scoped_string & scopedstrAppId);
1191// //#ifndef UNIVERSAL_WINDOWS
1192//
1193// //virtual void get_time(timeval * i32_point) override;
1194//
1195// //#endif
1196//
1197// //virtual void on_start_system() override;
1198// //virtual void on_start_find_applications_from_cache() override;
1199// //virtual void on_end_find_applications_from_cache(stream & is) override;
1200//
1201// //virtual void on_end_find_applications_to_cache(stream & os) override;
1202//
1203// //virtual void on_map_application_library(::acme::library & library) override;
1204//
1205// //virtual void defer_check_exit();
1206//
1207//
1208//
1209// //virtual void do_request(::request * prequest) override;
1210//
1211// //virtual void defer_check_openweather_city_list();
1212//
1213// //virtual openweather_city * openweather_find_city(const ::scoped_string & scopedstrQuery);
1214// //virtual ::collection::index openweather_find_city2(const ::scoped_string & scopedstrQuery, string & strCit, ::i64 & iId, ::f64 & dLat, ::f64 & dLon);
1215// //virtual ::collection::index openweather_find_city2(const ::scoped_string & scopedstrQ1, const ::scoped_string & scopedstrQ2, string & strCit, ::i64 & iId, ::f64 & dLat, ::f64 & dLon, bool bPrefix);
1216//
1217// //#ifdef __ANDROID__
1218// ////#pragma message("at macos??")
1219// // virtual bool android_set_user_wallpaper(const ::scoped_string & scopedstrUrl) override;
1220// // virtual bool android_get_user_wallpaper(string & strUrl) override;
1221// //
1222// //#endif
1223// //
1224// // virtual bool defer_accumulate_on_open_file(string_array_base stra, const ::scoped_string & scopedstrExtra) override;
1225// //
1226// // virtual bool merge_accumulated_on_open_file(::request * prequest) override;
1227// //
1228// // virtual bool on_open_file(::payload payloadFile, const ::scoped_string & scopedstrExtra) override;
1229// //
1230// //virtual LPWAVEOUT waveout_open(::i32 iChannel, LPAUDIOFORMAT pformat, LPWAVEOUT_CALLBACK pcallback);
1231//
1232// //virtual bool initialize_native_window1();
1233//
1234// //virtual void * initialize_native_window2(const ::i32_rectangle & rectangle);
1235//
1236//
1237// //virtual void on_os_text(e_os_text etext, const ::scoped_string & scopedstrText) override;
1238//
1239// //virtual ::windowing::window * impl_from_handle(void * posdata);
1240// //virtual ::user::interaction * ui_from_handle(void * posdata);
1241// //virtual void on_extra(const ::scoped_string & scopedstr) override;
1242//
1243// //virtual string standalone_setting(const ::scoped_string & scopedstr) override;
1244// //virtual bool set_standalone_setting(const ::scoped_string & scopedstr, const ::scoped_string & scopedstrSetting) override;
1245//
1246//
1247// //virtual void on_event(::u64 u, ::particle * pparticle) override;
1248//
1249//
1250// virtual void on_initial_frame_position(::user::frame_interaction * pframe);
1251//
1252// virtual void on_graphics_ready();
1253//
1254// //virtual void process_machine_event_data(machine_event_data * pdata) override;
1255//
1256//
1257//
1258// //virtual void __tracea(enum_trace_level elevel, const ::scoped_string & scopedstrFunction, const ::scoped_string & scopedstrFile, ::i32 iLine, const ::scoped_string & scopedstr) const override;
1259//
1260//
1261// //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);
1262//
1263// //void defer_create_firefox_profile(::file::path pathFirefox, const ::scoped_string & scopedstrProfileName, ::file::path pathProfile);
1264//
1265// //void firefox(const ::scoped_string & scopedstrUrl, const ::scoped_string & scopedstrBrowser, const ::scoped_string & scopedstrProfile, const ::scoped_string & scopedstrParam);
1266// //void get_firefox_installation_info(string & strPathToExe, string & strInstallDirectory);
1267//
1268//
1269//
1270// //virtual void initialize_system(::object* pparticle, app_core* pappcore) override;
1271//
1272// /* virtual void discard_to_factory(::pointer<object>pca) override;*/
1273//
1274// //virtual bool is_system() const override;
1275//
1276// //virtual void process_init() override;
1277//
1278// //virtual void init2() override;
1279//
1280// //virtual void init_system() override;
1281//
1282// //virtual void term() override;
1283//
1284// //virtual void term_system() override;
1285//
1286//
1287// //virtual ::i32 main();
1288// ///virtual void InitApplication() override;
1289//
1290// //virtual void init() override;
1291// //virtual void init1() override;
1292// //virtual void init3() override;
1293//
1294// //virtual void bergedge_start() override;
1295//
1296//
1297// //virtual void initialize_rich_text();
1298//
1299//
1300// //virtual ::collection::index get_new_bergedge(application_bias * pbiasCreation = nullptr);
1301//
1302// //pointer_array < ::aura::session > & planesessionptra();
1303//
1304//
1305// //virtual bool base_support() override;
1306//
1307//
1308// //DECLARE_MESSAGE_HANDLER(on_application_signal);
1309//
1310//
1311// //void set_history(::apex::history* phistory);
1312//
1313//
1314// //::pointer<::acme::library>on_get_library(const ::scoped_string & scopedstrLibrary) override;
1315//
1316//
1317// //virtual ::aura::session * get_platform(::collection::index iEdge,application_bias * pbiasCreation = nullptr);
1318//
1319//
1320// //virtual void on_request(::create* pcreate) override;
1321//
1322// // virtual ::pointer<::handler>handler();
1323//
1324// //virtual ::i32 main();
1325//
1326// //virtual void on_allocation_error(const ::scoped_string & scopedstr, ::object* pobjectSometimes) override;
1327//
1328// //virtual ::pointer<::aura::session>on_create_session() override;
1329//
1330//
1331// // ::aura::stra & stra();
1332// // ::aura::service & service();
1333// //::aura::history& hist();
1334//
1335// //class ::aura::patch& patch();
1336//
1337// //::http::system & http();
1338//
1339// //::filehandler::handler& filehandler();
1340//
1341//
1342// //#ifdef LINUX
1343// //
1344// // virtual void deferx_initializex_x11() ;
1345// // virtual bool sn_start_context();
1346// //
1347// //#endif
1348//
1349// ////bool sync_load_url(string& str, const ::scoped_string & scopedstrUrl, ::account::user* puser = nullptr, ::http::cookies* pcookies = nullptr);
1350// //bool sync_load_url(string& str, const ::scoped_string & scopedstrUrl, ::http::cookies* pcookies = nullptr);
1351//
1352//
1353//
1354// // ::u32 guess_code_page(const ::scoped_string & scopedstr);
1355//
1356// //#ifdef UNIVERSAL_WINDOWS
1357// //
1358// // virtual bool window_rectangle(::i32_rectangle* prectangle);
1359// //
1360// //
1361// //#endif
1362//
1363// //virtual void post_fork_uri(const ::scoped_string & scopedstrUri,application_bias * pappbias);
1364//
1365//
1366//
1367// // virtual bool wait_twf(class ::time tickTimeout = U32_INFINITE_TIMEOUT);
1368// virtual string get_host_location_url();
1369//
1370// // virtual void add_impact_library(::acme::library* plibrary);
1371//
1372// //virtual void get_cursor_position(::i32_point * ppoint);
1373//
1374//
1375//
1376// //virtual void do_request(::create* pcommand) override;
1377//
1378//
1379// //#ifdef _DEBUG
1380// //
1381// // virtual void set_context(::handler_context* pcontext) override;
1382// // virtual void set_context_thread(::thread* pthread) override;
1383// // virtual void set_context_app(::aura::application* pappContext) override;
1384// // virtual void set_context_session(::aura::session* psessionContext) override;
1385// // virtual void set_context_system(::aura::system* psystemContext) override;
1386// //
1387// //#endif
1388//
1389//
1390// // void assert_ok() const override;
1391// //void dump(dump_context& action_context) const override;
1392//
1393//
1394// //virtual void main() override;
1395// //virtual void hist_hist(const ::scoped_string & scopedstr) override;
1396//
1397//
1398// virtual ::platform::type get_pane_tab_impact_type_info();
1399// virtual ::platform::type get_simple_frame_window_type_info();
1400// //virtual ::platform::type get_simple_child_frame_type_info();
1401//
1402// //virtual void on_start_find_applications_from_cache() override;
1403// //virtual void on_end_find_applications_from_cache(stream& is) override;
1404//
1405// //virtual void on_end_find_applications_to_cache(stream& os) override;
1406//
1407// //virtual void on_map_application_library(::acme::library& library) override;
1408//
1409// //virtual void on_graphics_ready() override;
1410//
1411//
1412// //void _on_initialize_window_object() override;
1413//
1414//
1415// //system();
1416// //virtual ~system();
1417//
1418//
1419// ///virtual void initialize_system(::object* pparticle, app_core* pappcore) override;
1420//
1421//
1422// //virtual void process_init() override;
1423// //virtual void term_system() override;
1424//
1425// //virtual ::pointer<::aura::session>on_create_session() override;
1426// //virtual ::install::canvas * install_create_canvas() override;
1427// //virtual void install_canvas_on_paint(::draw2d::graphics_pointer & pgraphics, const ::i32_rectangle & rectangle);
1428// //virtual ::i32 install_canvas_increment_mode() override;
1429//
1430//
1431//
1432// //virtual ::u32 get_monitor_color_temperature(::collection::index iMonitor);
1433// //virtual bool adjust_monitor(::collection::index iMonitor, ::u32 dwTemperature, ::f64 dBrightness, ::f64 dwGamma);
1434// //virtual bool get_monitor_rectangle(::collection::index iMonitor, ::i32_rectangle* prectangle) override;
1435//
1436// //virtual ::collection::count get_monitor_count() override;
1437//
1438// //bool get_workspace_rectangle(::collection::index iWorkspace, ::i32_rectangle* prectangle) override;
1439//
1440//
1441// //virtual ::windowing::window * impl_from_handle(void * pdata) override;
1442// //virtual ::user::interaction * ui_from_handle(void * pdata) override;
1443//
1444// //void signal(::signal * psignal) override;
1445//
1446// //void handle(::topic * ptopic, ::handler_context * phandlercontext) override;
1447//
1448// virtual void initialize_estamira();
1449//
1450// virtual void _001AddPacks(string_to_string_base & base64map, string & str);
1451//
1452// //pointer< ::extended::sequence < ::conversation > > message_box(::user::interaction * puserinteraction, const ::scoped_string & scopedstrMessage, const ::scoped_string & scopedstrTitle = nullptr, const ::user::e_message_box & emessagebox = ::user::e_message_box_ok) override;
1453//
1454// //void windowing_send(const ::procedure & procedure) override;
1455// //void windowing_post(const ::procedure & procedure) override;
1456//
1457//
1458// //::string implementation_name(const ::scoped_string & scopedstrComponent, const ::scoped_string & scopedstrImplementation)
1459//
1460//
1461// //void do_graphics_and_windowing_system_factory() override;
1462//
1463//
1464
1465 ::accessibility::accessibility *accessibility() override;
1466
1467 virtual ::string operating_system_icon_url(const ::i32_size &size);
1468 virtual ::string operating_ambient_icon_url(const ::i32_size &size);
1469
1470
1471
1472 };
1473
1474
1475
1476} // namespace platform
1477
1478
1479
1480inline ::platform::system * system()
1481{
1482
1483 return ::platform::system::s_p;
1484
1485}
1486
1487
1488
1489
1490template < typename APPLICATION >
1491APPLICATION* main_application()
1492{
1493
1494 auto psystem = ::system();
1495
1496 if (::is_null(psystem))
1497 {
1498
1499 return nullptr;
1500
1501 }
1502
1503 auto pacmeapplication = psystem->m_papplication;
1504
1505 if (::is_null(pacmeapplication))
1506 {
1507
1508 return nullptr;
1509
1510 }
1511
1512 ::cast < APPLICATION > papplication = pacmeapplication;
1513
1514 if (::is_null(papplication))
1515 {
1516
1517 return nullptr;
1518
1519 }
1520
1521 return papplication;
1522
1523}
1524
1525
1526
Definition accessibility.h:12
Definition windowing.h:43
Definition color.h:162
Definition crypto.h:19
Definition datetime.h:43
Definition geometry.h:25
Definition handler.h:22
Definition lparam.h:9
Definition nano.h:23
Definition system_apex.h:71
Definition system_aqua.h:36
Definition system_aura.h:62
Definition system_axis.h:39
Definition system_core.h:19
Definition remoting.h:13
Definition system_factory.h:14
virtual void _compress(const ::payload &payloadTarget, const ::payload &payloadSource, const ::scoped_string &scopedstrImplementation) override
Definition system.cpp:4099
virtual void process_init() override
Definition system.cpp:1146
virtual void init_system() override
virtual void call_init_system() override;
Definition system.cpp:2191
::pointer< ::uncompress > _new_uncompress(const ::scoped_string &scopedstrImplementation)
Definition system.cpp:4032
virtual void zlib_uncompress(const ::payload &payloadTarget, const ::payload &payloadSource, transfer_progress_function transferprogressfunction={}) override
Definition system.cpp:4207
virtual void zlib_compress(const ::payload &payloadTarget, const ::payload &payloadSource) override
Definition system.cpp:4172
virtual void system_construct(::platform::application *pacmeapplicationStartup) override
Definition system.cpp:3687
virtual void _uncompress(const ::payload &payloadTarget, const ::payload &payloadSource, const ::scoped_string &scopedstrImplementation, transfer_progress_function transferprogressfunction={}) override
Definition system.cpp:4135
Definition task_handler.h:9
virtual void branch(enum_parallelization eparallelization=e_parallelization_asynchronous, const create_task_attributes_t &createtaskattributes={})
Definition task.cpp:2929
Definition context.h:54
Definition aaa_time.h:13
Definition topic.h:17
Definition url_context.h:14
Definition wparam.h:10
Definition solaris_file_watcher.cpp:34
include "thread/AutoLock.h"
Definition _forward_declaration.h:877
Definition block.h:46
Definition create_task_attributes.h:12
Definition system_apex.h:18
Definition system_aqua.h:21
Definition system_aura.h:23
Definition system_axis.h:12
Definition system_core.h:12