11 #ifndef LAUNCH_MANAGER_CLASS
12 #define LAUNCH_MANAGER_CLASS
41 class launch_manager_thread;
60 OKAY = basis::common::OKAY,
67 "application doesn't exist, as far as we can tell"),
72 "according to the OS process list"),
74 "to be a valid program image"),
76 "process cannot find the special anchor window that implements the "
77 "client side of a graceful shutdown"),
79 "valid but its launch failed for some reason"),
81 "system reports it as non-responsive"),
149 bool _started_initial_apps;
150 launch_manager_thread *_checker;
152 graceful_array *_going_down;
154 graceful_array *_our_kids;
156 bool _stop_launching;
176 void launch_startup_apps();
179 void stop_all_kids();
Provides methods for starting, stopping and checking on processes.
basis::outcome launch_now(const basis::astring &product, const basis::astring &app_name, const basis::astring ¶meters)
starts the application "app_name" now.
basis::outcome query_application(const basis::astring &product, const basis::astring &app_name)
retrieves the current state of the program with "app_name".
basis::outcome shut_down_launching_services(const basis::astring &secret_word)
closes down the ability of clients to launch applications.
void add_gag_exclusion(const basis::astring &exclusion)
add an application that isn't subject to gagging.
launch_manager(processes::configured_applications &config)
the launch_manager needs a configuration set to work with.
static const char * outcome_name(const basis::outcome &to_name)
returns the text associated with "to_name".
virtual ~launch_manager()
DEFINE_CLASS_NAME("launch_manager")
void stop_everything()
closes down the operation of this object.
bool services_disabled() const
returns true if the capability to launch new processes is revoked.
basis::outcome launch_at_startup(const basis::astring &product, const basis::astring &app_name, const basis::astring ¶meters, int one_shot)
records an entry for the "app_name" to be launched at startup.
basis::outcome zap_process(const basis::astring &product, const basis::astring &app_name, bool graceful)
zaps the process named "app_name".
@ EXISTING
the entry already exists and overwriting is disallowed.
@ ACCESS_DENIED
the requested operation was not permitted.
void push_timed_activities(processes::process_entry_array &processes)
keeps any periodic activities going.
void add_tracking_exclusion(const basis::astring &exclusion)
apps that aren't tracked when running.
basis::outcome reenable_launching_services(const basis::astring &secret_word)
undoes the gagging that the above "shut_down" function does.
basis::outcome remove_from_startup(const basis::astring &product, const basis::astring &app_name)
takes the "app_name" out of the startup list.
Provides a dynamically resizable ASCII character string.
Outcomes describe the state of completion for an operation.
Provides a bridge to the operating system for information on processes.
a handy class that implements an array of process entries.
A simple object that wraps a templated set of ints.
A simple object that wraps a templated set of strings.
Represents a point in time relative to the operating system startup time.
Implements an application lock to ensure only one is running at once.