Architecture/Process Flow
From Apache OpenOffice Wiki
Startup- and Shutdown sequence of OpenOffice.org
- Construction of the global application object
- main() method of the executable
- Initialization of the VCL library
- Initialization of the application object
- Bootstrap initial UNO component context
- Sets global process service factory
- Creates Office configuration service
- Determines the current Office language and initialize language settings for Office configuration service.
- Creates IPC thread and named pipe for office-office communication
- Sets exception handler
- Calls Main() method on application object
- Handles bootstrap errors (show possible bootstrap errors to user and exit application)
- Creates and show splash screen
- Creates user configuration data on first startup
- Checks command line arguments and creates possible UNO acceptors
- Initialization of the UCB
- Creates global temporary directory for Office
- Sets user interface and application locale
- Creates global broadcaster service for application/document events
- Starts first start wizard for possible license agreement/user data input
- If no command line arguments
- Creates one instance framework desktop service
- Creates startup module service
- Creates frame and connects startup module to frame.
- Checks command line arguments and creates possible quickstart service
- Checks command line arguments for headless mode and if positive activates internal dialogs
- Starts the global application message loop
- Asynchronous (default) document creation/loading.
- Analyzes the command line arguments and determines a possible default document type.
- Loads/prints documents provided by command line
- Shows the document window(s)
- Enables the IPC thread to receive data from the named pipe.
- Asynchronous enabling of the UNO acceptors
- Office shutdown triggered by: Terminate call on the com.sun.star.frame.XDesktop interface or Menubar “File – Exit” or keyboard shortcut “CTRL-Q”
- Closes all open documents (asks for allowance for modified documents)
- IPC thread blocks all requests from other Offices
- Removes the global temporary directory
- Stops all UNO acceptors
- De-initializes UCB
- De-initializes VCL library
- De-initializes global application object
- Stores all Office configuration changes
- Disposes default UNO component context
- Disables IPC thread for office-office communication
- Leaves main() method
- Destroys global application object