Internal Design
Key classes
- Manager
- Top level class created in
main()
. - Loads the JSON configuration file.
- Implements the D-Bus
configure
and monitor
methods. - Contains a System object.
- System
- Represents the computer system being controlled and monitored by the BMC.
- Contains one or more Chassis objects.
- Chassis
- Represents a physical enclosure that can be powered on and off by the BMC.
- Small and mid-sized systems may contain a single Chassis.
- In a large rack-mounted system, each drawer may correspond to a Chassis.
- Contains one or more Device objects.
- Device
- Represents a hardware device, such as a voltage regulator or I/O expander.
- Contains zero or more Rail objects.
- Rail
- Represents a voltage rail produced by a voltage regulator, such as 1.1V.
- Services
- Abstract base class that provides access to a collection of system services like error logging, journal, vpd, and hardware presence.
- The BMCServices child class provides the real implementation.
- The MockServices child class provides a mock implementation that can be used in gtest test cases.