Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

CDT/designs/PDOM/Lifecycle

< CDT‎ | designs‎ | PDOM
Revision as of 17:59, 28 March 2006 by Dschaefer (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

At cdt.core startup time, the PDOM manager registers itself as a listener for CElement change events.

Each project has a PDOM. The actual PDOM database object is created when first referenced. If the database file doesn't exist, that is also created and initialized. A reference to the PDOM object is stored in a session property on the project. A utility method is provided to get access to it. The PDOM stays open until the project is closed or the workbench exits. (Q: What happens when it crashes?)

Each PDOM has an indexer. The indexer is called by the PDOM manager whenever it detects a possible change for the given project. This can be either through a change event, or a UI action. In the future, we may also add audits that run through the index checking for integrity and doing any "garbage collection" when the workbench is idle.

When the PDOM manager gets a change event, it visits the delta and farms off sub-trees to the appropriate indexers in the appropriate pdoms for the appropriate projects.

Back to the top