Implements an application lock to ensure only one is running at once. More...
|The application_shell is a base object for console programs. More...|
|Provides a base object for the root application portion of a program. More...|
|A platform-independent way to alert a program that it should shut down immediately. More...|
|Provides methods for starting, stopping and checking on processes. More...|
|Redirects I/O for a newly launched application. More...|
|Implements storage for memory that can be shared between threads. More...|
|bool||it_is_a_prefix_char (char to_test)|
|window_handle||create_simplistic_window (const basis::astring &formal(window_title), const basis::astring &formal(class_name))|
|void||whack_simplistic_window (window_handle formal(f_window))|
|const int||MAXIMUM_COMMAND_LINE = 32 * KILOBYTE|
|application_shell *||not_so_hidden_pointer = NULL|
|const int||CHECK_INTERVAL = 4 * SECOND_ms|
|const int||GRACEFUL_SLACK = 90 * SECOND_ms|
|const int||MAXIMUM_INITIAL_APP_WAIT = 4 * SECOND_ms|
|const int||STARTUP_APPS_DELAY_PERIOD = 2 * SECOND_ms|
|const int||MAXIMUM_REQUEST_PAUSE = 42 * SECOND_ms|
|const int||IO_PAUSE_PERIOD = 50|
|const int||BUFFER_SIZE = 4096|
|const char *||REDIRECTER_INI = "redirecter.ini"|
|const char *||PROCESS_SECTION = "process_id"|
|< returns the name of the module for the "module_handle" where supported. |
Implements an application lock to ensure only one is running at once.
An add-in file providing window class registration and a window procedure.
This encapsulates the code used to ensure that only one copy of an application is running at a time. It can either be made specific to a user (so that user can run only one at a time) or made global to the entire machine.
This file makes it easier to add a very simple window to any console or win32 application that might need it (possibly because the app does not create any windows itself, but for crazy insane reasons, a window is still needed by an external agent, ahem installshield). It implements a very important part of this process, which is setting a window procedure and registering a window class. Sometime in 2005 or 2006, a windows update came through that made these formerly optional practices mandatory (and broke many of our applications that created windows without a window procedure or class registration). That occurrence prompted the creation of this class which tries to provide the bare minimum needed to make things work again.
include our code file to embed the window procedure and register class methods in whoever needs them. this should only be needed once per program.
create our simple window...
window_handle f_window = create_simplistic_window(window_title, class_name);
and then much later, after the window is no longer needed...
|window_handle application::create_simplistic_window||(||const basis::astring &||formalwindow_title,|
|const basis::astring &||formalclass_name|
< returns the name of the module for the "module_handle" where supported.
< if the handle is NIL, then the program name is returned. < gets the most recent system error reported on this thread. < returns the OS's string form of the "error_to_show".
< this often comes from the value reported by system_error(). < returns the name of the system's NULL device.
< this device is a black hole where output can be sent, never to be seen again. this is /dev/null on unix and null: on win32. < returns a timeval system object that represents the "milliseconds".
< if "milliseconds" is zero, then the returned timeval will represent zero time passing (rather than infinite duration as some functions assume). dll_root.cpp defines this for all dlls.
|const int application::BUFFER_SIZE = 4096|
Referenced by application::stdio_redirecter::std_thread_action().
|const int application::CHECK_INTERVAL = 4 * SECOND_ms|
|const int application::GRACEFUL_SLACK = 90 * SECOND_ms|
Referenced by application::launch_manager::push_timed_activities().
|const int application::MAXIMUM_COMMAND_LINE = 32 * KILOBYTE|
|const int application::MAXIMUM_INITIAL_APP_WAIT = 4 * SECOND_ms|
|const int application::MAXIMUM_REQUEST_PAUSE = 42 * SECOND_ms|
|const char* application::PROCESS_SECTION = "process_id"|
|const char* application::REDIRECTER_INI = "redirecter.ini"|