1 # Overview of CHIP Linux Adaption
3 The following is a quick overview of the Linux adaptation of CHIP. Most of this
4 code will have parallels in any new adaptation.
6 (All file names are relative to `connectedhomeip/src/...`).
8 `include/platform/Linux/PlatformManagerImpl.h`<br>`Linux/PlatformManagerImpl.cpp`
10 - Concrete implementation of PlatformManager interface
11 - Provides initialization of the CHIP stack and core event loop for the chip
13 - Relies on GenericPlatformManagerImpl_POSIX<> class to provide most of the
16 `include/platform/Linux/ConfigurationManagerImpl.h`<br>`Linux/ConfigurationManagerImpl.cpp`
18 - Concrete implementation of ConfigurationManager interface
19 - Manages storage and retrieval of persistent configuration data
20 - Relies on GenericConfigurationManagerImpl<> classes to implement most API
22 - Delegates low-level reading and writing of persistent values to PosixConfig
25 `include/platform/Linux/ConnectivityManagerImpl.h`<br>`Linux/ConnectivityManagerImpl.cpp`
27 - Concrete implementation of ConnectivityManager interface
28 - Provides high-level APIs for managing device connectivity
29 - Relies on various generic implementation classes to provide API
31 - Very much a work-in-progress in the Linux branch
33 `include/platform/Linux/ThreadStackManagerImpl.h`<br>`Linux/ThreadStackManagerImpl.cpp`
35 - Concrete implementation of ThreadStackManager interface
36 - Supports Thread stack initialization and core event loop processing
37 - Relies on GenericThreadStackManagerImpl_OpenThread/POSIX<> classes to
38 implement most API functionaltiy
40 `include/platform/Linux/BLEManagerImpl.h`<br>`Linux/BLEManagerImpl.cpp`
42 - Concrete implementation of the BLEManager interface
43 - Maps CHIP's BLE interface abstractions (BleLayer, BlePlatformDelegate,
44 BleApplicationDelegate) onto the platform's native BLE services
45 - Implements chip-compatible BLE advertising.
47 `platform/Linux/Entropy.cpp`
49 - Implements interface to platform entropy source
51 `platform/Linux/Logging.cpp`
53 - Adaption of chip debug logging to platform logging facility.
55 `platform/Linux/PosixConfig.cpp`
57 - Implements low-level read/write of persistent configuration values
58 - Class API specifically designed to work in conjunction with the
59 GenericConfigurationManagerImpl<> class.