Fix the rat's nest of headers

Registered by Monty Taylor on 2008-10-21

All of the headers are in really bad shape. There are interdependency problems, too much code in them, and other general ugliness. The general ideas are:

- Remove all of the aggregating headers. Make each code file self contained in terms of what it includes. No file should assume some other file has been included before it. The one exception here is config.h, which all headers can assume has been included and should never include themselves.
- Make all headers include everything they need. Each header should be able to be pre-compiled by gcc, although we won't necessarily do this for all of them.
- Move implementation detail code from headers to implementation files unless absolutely necessary.
- Only include what is actually used in the file.

When the above is done, then we can create new aggregating headers with sensible groupings of needed resources.

Additionally, most of the #define's that aren't about compilation switches should be replaced with actual code.

Blueprint information

Status:
Complete
Approver:
Monty Taylor
Priority:
High
Drafter:
Monty Taylor
Direction:
Approved
Assignee:
Monty Taylor
Definition:
Approved
Series goal:
Accepted for cherry
Implementation:
Implemented
Milestone target:
milestone icon 2010-03-15
Started by
Monty Taylor on 2008-10-21
Completed by
Jay Pipes on 2010-03-02

Sprints

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.