xref: /openbmc/phosphor-power/phosphor-regulators/docs/internal_design.md (revision 80689db1ed2f4677bd3ea3fc3b74f26900bf44d9)
1*80689db1SShawn McCarney# Internal Design
2*80689db1SShawn McCarney
3*80689db1SShawn McCarney## Key classes
4*80689db1SShawn McCarney
5*80689db1SShawn McCarney- Manager
6*80689db1SShawn McCarney  - Top level class created in `main()`.
7*80689db1SShawn McCarney  - Loads the JSON configuration file.
8*80689db1SShawn McCarney  - Implements the D-Bus `configure` and `monitor` methods.
9*80689db1SShawn McCarney  - Contains a System object.
10*80689db1SShawn McCarney- System
11*80689db1SShawn McCarney  - Represents the computer system being controlled and monitored by the BMC.
12*80689db1SShawn McCarney  - Contains one or more Chassis objects.
13*80689db1SShawn McCarney- Chassis
14*80689db1SShawn McCarney  - Represents an enclosure that can be independently powered off and on by the
15*80689db1SShawn McCarney    BMC.
16*80689db1SShawn McCarney  - Small and mid-sized systems may contain a single Chassis.
17*80689db1SShawn McCarney  - In a large rack-mounted system, each drawer may correspond to a Chassis.
18*80689db1SShawn McCarney  - Contains one or more Device objects.
19*80689db1SShawn McCarney- Device
20*80689db1SShawn McCarney  - Represents a hardware device, such as a voltage regulator or I/O expander.
21*80689db1SShawn McCarney  - Contains zero or more Rail objects.
22*80689db1SShawn McCarney- Rail
23*80689db1SShawn McCarney  - Represents a voltage rail produced by a voltage regulator, such as 1.1V.
24*80689db1SShawn McCarney- Services
25*80689db1SShawn McCarney  - Abstract base class that provides access to a collection of system services
26*80689db1SShawn McCarney    like error logging, journal, vpd, and hardware presence.
27*80689db1SShawn McCarney  - The BMCServices child class provides the real implementation.
28*80689db1SShawn McCarney  - The MockServices child class provides a mock implementation that can be used
29*80689db1SShawn McCarney    in gtest test cases.
30