29class CLASS_DECL_ACME system_setup
43 flag_object_user = 32,
45 flag_do_not_install = 4096,
50 const char * m_pszName;
52 system_setup* m_ppropertysetupNext;
53 PFN_factory m_pfnFactory;
56 static system_setup * s_psetupList;
59 system_setup(::system_setup::enum_flag eflag,
const char * pszName);
60 system_setup(PFN_factory pfnFactory,
const char * pszName);
66 inline bool should_install() {
return !has_flag(flag_do_not_install); }
67 [[nodiscard]]
bool has_flag(::system_setup::enum_flag eflag) {
return ((
int)m_eflag & (
int)eflag) == (int)eflag; }
70 static system_setup* get_last(::system_setup::enum_flag eflag, const ::scoped_string & scopedstrName =
nullptr);
71 static system_setup* get_first(::system_setup::enum_flag eflag, const ::scoped_string & scopedstrName =
nullptr);
72 static PFN_factory get_factory_function(const ::scoped_string & scopedstrName =
nullptr);
75 virtual ::pointer<::acme::library>create_library();
76 virtual ::particle_pointer create_particle();
77 virtual ::particle_pointer create_application_as_particle();
80 virtual ::pointer<::acme::library>_create_library();
81 virtual ::particle_pointer _create_particle();
82 virtual ::particle_pointer _create_application_as_particle();
150class static_application_factory :
156 ::particle_pointer _create_application_as_particle()
override
159 auto papp = __allocate APPLICATION_TYPE();
166 static_application_factory(const ::scoped_string & scopedstrName =
"") :
167 system_setup(flag_application, scopedstrName)