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