Changes between Version 2 and Version 3 of 2014-09-25


Ignore:
Timestamp:
Sep 25, 2014, 4:49:50 PM (11 years ago)
Author:
pett
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2014-09-25

    v2 v3  
    2222
    2323
    24 
    25 
    26 After much discussion, we agreed to the following initialization sequence:
    27 
    28 1. Command line parsing
    29 1. Preserve execution environment and monkey patch Python
    30  - Programs included with Chimera, eg al2co, will execute with the same environment as Chimera while system programs will execute with the preserved environment
    31 1. Setup paths
    32  - Chimera paths (where "system" files live)
    33  - Per-user paths (where user data and tools live)
    34 1. Initialize "stdio" or UI toolkit, eg splash screen
    35  - Establish presence and both status and error reporting channels
    36 1. Initialize preferences
    37 1. Initialize core, eg molecular data, surface, triggers, etc.
    38 1. Initialize tool shed
    39  - Tool shed should support "safe mode" where no tools are loaded
    40  - Tool shed can support, possibly in conjunction with preferences, disabling certain tools
    41  - Find list of "tool" (which can be Chimera-style tools, commands, data formats, libraries, shared objects, etc)
    42  - Each tool has attributes, eg commands, menus, buttons, that can be queried, eg by UI
    43  - Each tool has methods, eg "start" for creating an instance of the tool
    44   - This is how tools can communicate
    45   - "start" returns a !ToolInstance that implements the actual functionality
    46  - !ToolInstance has a different API than Tool
    47  - Some Tool's have a singleton !ToolInstance while others may be multi-instanced
    48 1. Initialize UI and OpenGL
    49 1. Add tool interfaces to UI
    50  - App queries tool shed for list of tools and then tells UI what to do
    51 1. Execute custom Tool initialization code
    52  - App queries tool shed for list of tools and use Tool API to check for init code
    53 1. Process command line requests
    54  - Open files
    55  - Run scripts
    56  - Start Tools
    57  - Restore sessions
    58 1. Enter event loop
    59 
    60 Eric described his approach to replacing Qt with wx in Hydra.  We decided that we need more information on the Hydra architecture in order to decide on how best to proceed with further development (eg continue Hydra code base, move components into core, etc.)