51 class CLASS_DECL_ACME platform :
53 virtual public ::particle
61 static ::platform::platform * s_pplatform;
67 ::e_display m_edisplay;
68 ::user::e_activation m_eactivation;
70 char ** m_args =
nullptr;
71 char ** m_envp =
nullptr;
72 ::platform::system * m_psystem;
77 wchar_t ** m_wargs =
nullptr;
78 wchar_t ** m_wenvp =
nullptr;
80 hinstance m_hinstanceThis =
nullptr;
81 hinstance m_hinstancePrev =
nullptr;
94 void * m_pApplicationDelegate =
nullptr;
100#if defined(LINUX) || defined(__APPLE__) || defined(ANDROID) || defined(__BSD__)
163 ::memory_counter * m_pmemorycounter;
166 bool m_bOutputDebugString;
168 string m_strCommandLine;
176 ::acme::library_map m_mapLibrary;
177 ::factory::factory_pointer m_pfactory;
178 ::factory::factory_map m_factorymap;
179 ::factory::component_factory_map m_componentfactorymap;
180 ::pointer < ::operating_system::dynamic_library > m_pdynamiclibrary;
181 int m_iProcessStatus = 0;
185 ::windowing::enum_windowing m_ewindowing;
186 ::windowing::enum_operating_ambient m_edesktop;
187 ::windowing::enum_toolkit m_etoolkit;
203 virtual bool is_console()
const;
205 virtual bool is_desktop_system()
const;
207 virtual bool is_sandboxed()
const;
213 return &m_criticalsectionChannel;
221 return &m_criticalsectionMessageDispatch;
229 return &m_criticalsectionSequence;
237#if defined(WINDOWS) && defined(UNICODE)
239 void initialize_system(
int argc,
wchar_t * args[],
wchar_t * envp[]);
241 void initialize_system(hinstance hinstanceThis, hinstance hinstancePrev,
wchar_t * pCmdLine,
int nCmdShow);
245 void initialize_system(
int argc, platform_char ** args, platform_char ** envp)
override;
250 void platform_initialize();
251 void platform_finalize();
254 void set_args(
int argc,
char ** args,
wchar_t ** wargs);
256 string _get_args(::collection::index iArg)
const;
257 ::collection::count get_argc();
259 char *** get_pargs();
264 wchar_t *** get_pwargs();
265 wchar_t ** get_wargs();
269 bool is_verbose_log()
const;
271 inline ::collection::count _get_argc()
const {
return m_argc; }
273 string get_executable()
const;
275 string get_argument1(::collection::index iArgument)
const;
277 bool has_argument(const ::scoped_string & scopedArgument)
const;
279 inline ::collection::count get_argument_count1()
const {
return _get_argc() - 1; }
281 string_array get_arguments();
283 ::string get_argument_begins_eat(const ::scoped_string & scopedstrPrefix);
285 ::string_array get_argument_options(const ::scoped_string & scopedstrArgument);
287 string get_arg(::collection::index i)
const;
288 string get_env(const ::scoped_string & scopedstrVariableName)
const;
292 void set_status(
int iStatus);
296 virtual void set_resource_block(
const char * pstart,
const char * pend);
298 void defer_initialize_platform();
300 void factory_initialize();
301 void factory_terminate();
304 void delete_all_release_on_end();
310 ::factory::factory_pointer & factory();
311 ::factory::factory_pointer & factory(const ::string & strLibrary);
312 ::factory::factory_pointer & factory(const ::string & strComponent, const ::string & strImplementation);
318 bool has_factory_item(const ::atom &
atom);
321 void set_factory(const ::atom &
atom, const ::pointer<::factory::factory_item_interface> & pfactory);
324 void set_factory_from(const ::atom &
atom, const ::atom & atomSource, const ::pointer<::factory::factory_item_interface> & pfactory);
327 template <
typename TYPE,
typename BASE >
328 void add_factory_item(const ::atom &
atom)
331 set_factory(
atom, __allocate ::factory::factory_item < TYPE, BASE > ());
344 virtual ::pointer<::acme::library> create_library(const ::string & strLibrary);
345 virtual ::pointer<::acme::library> create_library_dynamically(const ::string & strLibrary);
346 virtual ::pointer<::acme::library> create_library_statically(const ::string & strLibrary);
348 virtual ::pointer<::acme::library> & library(const ::string & str);
352 virtual ::pointer<::factory::factory> & impact_factory(const ::string & strComponent, const ::string & strImplementation);
366 ::particle * ui_destroyed_synchronization();
370#if defined(LINUX) || defined(__APPLE__) || defined(ANDROID) || defined(__BSD__)
374 ::critical_section * thread_handle_lock_critical_section() {
return &m_criticalsectionThreadHandleLock; }
379 critical_section * globals_critical_section() {
return &m_criticalsectionGlobals; }
383 critical_section * factory_critical_section() {
return &m_criticalsectionFactory; }
390 ::critical_section * demangle_critical_section() {
return &m_criticalsectionDemangle; }
401 ::critical_section * sym_dbg_help_critical_section() {
return &m_criticalsectionSymDbgHelp; }
410 ::critical_section * output_debum_strinm_a_critical_section() {
return &m_criticalsectionOutputDebugStringA; }