37 class CLASS_DECL_ACME system :
38 virtual public ::platform::platform,
40 virtual public ::platform::acme_system_layer_t,
46 virtual public ::platform::acme_system_layer,
57 static ::platform::system * s_p;
58 ::pointer < ::platform::remoting > m_premoting;
61 ::pointer < ::particle > m_pparticleHttpTextSynchronization;
62 ::string_map_base < ::string_to_string_base > m_mapText;
63 ::pointer < ::platform::application > m_papplicationMain;
66 ::pointer<::windows::apartment_thread>m_papartmentthread;
73 virtual ::particle * matter_mutex()
override;
79 virtual class ::time * file_listing_cache_time()
override;
81 virtual ::string http_text(const ::scoped_string & scopedstrPath, const ::scoped_string & scopedstrKey,
const scoped_string & strLocale =
"_std", const ::scoped_string & strSchema =
"_std");
95 virtual void application_main();
96 virtual void transfer_application(::pointer < ::platform::application > && papplication);
98 ::task_message_queue * task_message_queue()
override;
101 ::thread_storage * thread_storage(const ::task_index & taskindex)
override;
102 ::thread_storage * _thread_storage_unlocked(const ::task_index & taskindex)
override;
104 virtual ::windows::apartment_thread * apartment_thread();
108 void on_initialize_particle()
override;
111 virtual void process_machine_event_data(machine_event_data * pdata)
override;
114 virtual ::string get_subsystem_library_component_name();
116 virtual ::string get_operating_ambient();
118 virtual ::string get_user_toolkit_id();
120 virtual ::string get_nano_user_toolkit_id();
122 virtual ::string get_innate_ui_toolkit_id();
124 virtual ::string get_acme_windowing_toolkit_id();
126 virtual ::string get_subsystem_toolkit_id();
128 void do_operating_ambient_factory()
override;
130 void do_graphics_factory()
override;
132 void do_windowing_factory()
override;
134 virtual void application_main(::platform::application * papplication);
136 virtual void initialize_layer();
138 virtual enum_trace_level get_trace_level()
override;
141 virtual void defer_initialize_matter()
override;
147 ::i64 increment_reference_count()
override;
150 ::i64 decrement_reference_count()
override;
158 virtual void create_task_message_queue();
159 virtual void destroy_task_message_queue();
162 ::task* get_task(const ::task_index & taskindex);
166 void set_task(::task* ptask);
167 void unset_task(::task* ptask);
169 virtual bool is_task_set(const ::task_index & taskindex);
175 virtual ::mathematics::mathematics * mathematics()
override;
177 virtual ::image::imaging * imaging()
override;
183 virtual ::networking::networking * networking()
override;
185 virtual ::platform::remoting * remoting();
187 virtual ::platform::node * node()
override;
189 virtual class ::base64 * base64()
override;
191 virtual ::xml::xml * xml()
override;
193 virtual ::file::watcher *
file_watcher()
const override;
195 virtual ::file_system * file_system()
const;
197 virtual ::directory_system * directory_system()
const;
199 virtual ::path_system * path_system()
const;
203 ::xml::xml * _xml()
override;
211 ::internet::internet * internet()
override;
214 ::particle * ui_destroyed_synchronization()
override;
218 ::micro::user * micro_user()
override;
220 ::windowing::windowing * windowing()
override;
222 ::component * component(const ::scoped_string & scopedstrComponent)
override;
226 ::string component_path(const ::scoped_string & scopedstrComponent)
override;
228 void defer_innate_ui()
override;
230 ::innate_ui::innate_ui * innate_ui()
override;
234 class ::manager_room * manager_room()
override;
240 virtual::prototype::prototype * prototype()
override;
242 virtual ::draw2d::draw2d * draw2d()
override;
243 virtual ::write_text::write_text * write_text()
override;
247 virtual ::platform::subsystem *MainSubsystem()
override;
249 virtual ::platform::ProfileLogger &ProfileLogger()
override;
253 virtual string get_system_platform()
override;
261 virtual void defer_audio()
override;
263 virtual bool has_audio()
override;
265 virtual void init1()
override;
267 virtual void init2()
override;
271 virtual void TermSystem()
override;
274 virtual void erase_from_any_hook(::matter * pmatter)
override;
277 virtual void create_os_node(::platform::application * papplication)
override;
279 virtual string os_get_user_theme()
override;
282 template <
typename BASE_TYPE >
283 ::pointer<BASE_TYPE> create(const ::scoped_string & scopedstrComponent, const ::scoped_string & scopedstrImplementation)
286#if REFERENCING_DEBUGGING
288 auto preferer = ::allocator::pop_referer();
292 auto & pfactory = this->factory(scopedstrComponent, scopedstrImplementation);
297 throw ::exception(error_resource);
301#if REFERENCING_DEBUGGING
303 ::allocator::_push_referer(preferer);
307 auto p = pfactory->__call__create< BASE_TYPE >(
this);
321 virtual ::u32 crc32(::u32 uCrc, const ::block &
block)
override;
326 void branch(enum_parallelization eparallelization = e_parallelization_asynchronous,
const create_task_attributes_t& createtaskattributes = {})
override;
330 virtual void create_session(::collection::index iEdge = 0)
override;
332 virtual ::pointer<::platform::session>on_create_session(::collection::index iEdge)
override;
334 virtual ::platform::session * session(::collection::index iEdge = 0)
override;
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;
341 void set_finish()
override;
343 void on_request(::request * prequest)
override;
346 void process_exit_status(::particle * pparticle, const ::e_status & estatus);
349 virtual ::platform::application * get_main_app()
override;
352 virtual ::factory::factory * folder_factory()
override;
358 virtual void system_construct(::platform::application * pacmeapplicationStartup)
override;
360#ifdef WINDOWS_DESKTOP
362 void system_construct(hinstance hinstanceThis, hinstance hPrevInstance, char_pointer pCmdLine, ::i32 nCmdShow);
364#elif defined(UNIVERSAL_WINDOWS)
374 virtual void speak(const ::scoped_string & scopedstr, const ::scoped_string & scopedstrLang =
"en-us", enum_gender egender = e_gender_none)
override;
377 virtual ::factory::factory * node_factory()
override;
380 virtual void inline_init()
override;
381 virtual void inline_term()
override;
391 virtual void term_system()
override;
412 virtual void canonical_system_main()
override;
414 virtual void system_main()
override;
420 virtual void on_branch_system_from_main_thread_startup(
::task_handler * ptaskhandler)
override;
423 void main()
override;
426 virtual ::pointer<::platform::application> new_app(const ::scoped_string & scopedstrAppId)
override;
429 virtual void end()
override;
432 virtual void on_end()
override;
435 virtual void report_system_instance()
override;
440 virtual class ::time get_update_poll_time(const ::atom & atom)
override;
443 virtual ::acme::library * on_get_library(const ::scoped_string & scopedstrLibrary)
override;
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;
456 bool _handle_uri(const ::block &
block)
override;
467 void init_task()
override;
468 void term_task()
override;
471 string __get_text(const ::scoped_string & scopedstr)
override;
555 ::task_group * task_group(::enum_priority epriority = ::e_priority_none);
557 ::task_tool * task_tool(::enum_task_tool etool);
560 virtual void show_operating_system_information_box(::user::activation_token *puseractivationtoken);
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);
568 inline ::atom atom(const ::payload & payload);
569 inline ::atom atom(const ::property & property);
571 virtual void check_exit()
override;
573 virtual ::regular_expression_pointer create_regular_expression(const ::scoped_string & scopedstrStyle, const ::scoped_string & scopedstr)
override;
575 virtual ::pointer<::regular_expression::context> get_regular_expression_context(const ::scoped_string & scopedstrStyle)
override;
577 virtual ::regular_expression_pointer compile_pcre(const ::scoped_string & scopedstr)
override;
578 virtual ::pointer<::regular_expression::context> get_pcre_context()
override;
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;
584 ::lresult system_id_topic(::i32 iId, ::i64 llWparam, ::i64 llLparam)
override;
586 void handle(
::topic * ptopic, ::handler_context * phandlercontext)
override;
599 virtual void node_will_finish_launching()
override;
601 virtual void node_did_finish_launching()
override;
603 virtual void on_open_untitled_file()
override;
605 virtual void on_open_file(const ::scoped_string & scopedstrFile)
override;
634 ::pointer < ::compress> _new_compress(const ::scoped_string & scopedstrImplementation);
635 ::pointer < ::uncompress>
_new_uncompress(const ::scoped_string & scopedstrImplementation);
637 ::pointer < ::compress> new_zlib_compress();
638 ::pointer < ::uncompress> new_zlib_uncompress();
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;
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;
646 virtual bool fast_is_decompressable_folder(const ::file::path & path)
override;
652 void post(const ::procedure & procedure)
override;
655 bool _handle_call(::payload & payload, const ::scoped_string & scopedstrObject, const ::scoped_string & scopedstrMember, ::property_set & propertyset)
override;
658 virtual string get_latest_deployment_number(const ::scoped_string & scopedstrBranch)
override;
661 void destroy()
override;
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;
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;
699 virtual void install_progress_add_up(::i32 iAddUp = 1)
override;
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();
709 virtual ::string get_application_server_name()
override;
712 virtual ::color::color background_color()
const override;
714 virtual ::f64 luminance()
const override;
716 virtual void set_background_color(const ::color::color & color)
override;
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;
728 virtual void set_dark_mode(
bool bDark)
override;
730 virtual ::color::color get_simple_ui_color(const ::e_element & eelement, const ::user::e_state & estate = ::user::e_state_none)
override;
732 virtual ::color::color get_default_color(
::color::color color)
override;
740 virtual bool defer_component_factory(const ::scoped_string & scopedstrComponent)
override;
741 virtual bool _defer_component_factory(const ::scoped_string & scopedstrComponent)
override;
1467 virtual ::string operating_system_icon_url(const ::i32_size &size);
1468 virtual ::string operating_ambient_icon_url(const ::i32_size &size);