blob: 0fcdb7ec14f26a4c51013ae6de7d4d911f4fd2c8 [file] [log] [blame] [view]
# Overview of CHIP Linux Adaption
The following is a quick overview of the Linux adaptation of CHIP. Most of this
code will have parallels in any new adaptation.
(All file names are relative to `connectedhomeip/src/...`).
`include/platform/Linux/PlatformManagerImpl.h`<br>`Linux/PlatformManagerImpl.cpp`
- Concrete implementation of PlatformManager interface
- Provides initialization of the CHIP stack and core event loop for the chip
task
- Relies on GenericPlatformManagerImpl_POSIX<> class to provide most of the
implementation
`include/platform/Linux/ConfigurationManagerImpl.h`<br>`Linux/ConfigurationManagerImpl.cpp`
- Concrete implementation of ConfigurationManager interface
- Manages storage and retrieval of persistent configuration data
- Relies on GenericConfigurationManagerImpl<> classes to implement most API
functionality
- Delegates low-level reading and writing of persistent values to PosixConfig
class
`include/platform/Linux/ConnectivityManagerImpl.h`<br>`Linux/ConnectivityManagerImpl.cpp`
- Concrete implementation of ConnectivityManager interface
- Provides high-level APIs for managing device connectivity
- Relies on various generic implementation classes to provide API
functionality
- Very much a work-in-progress in the Linux branch
`include/platform/Linux/ThreadStackManagerImpl.h`<br>`Linux/ThreadStackManagerImpl.cpp`
- Concrete implementation of ThreadStackManager interface
- Supports Thread stack initialization and core event loop processing
- Relies on GenericThreadStackManagerImpl_OpenThread/POSIX<> classes to
implement most API functionality
`include/platform/Linux/BLEManagerImpl.h`<br>`Linux/BLEManagerImpl.cpp`
- Concrete implementation of the BLEManager interface
- Maps CHIP's BLE interface abstractions (BleLayer, BlePlatformDelegate,
BleApplicationDelegate) onto the platform's native BLE services
- Implements chip-compatible BLE advertising.
`platform/Linux/Entropy.cpp`
- Implements interface to platform entropy source
`platform/Linux/Logging.cpp`
- Adaption of chip debug logging to platform logging facility.
`platform/Linux/PosixConfig.cpp`
- Implements low-level read/write of persistent configuration values
- Class API specifically designed to work in conjunction with the
GenericConfigurationManagerImpl<> class.