tree: 1d4d5df910a2aa9bb7da126e267f217cb31c186a [path history] [tgz]
  1. bluez/
  2. dbus/
  3. args.gni
  4. BLEManagerImpl.cpp
  5. BLEManagerImpl.h
  6. BlePlatformConfig.h
  7. CHIPDevicePlatformConfig.h
  8. CHIPDevicePlatformEvent.h
  9. CHIPLinuxStorage.cpp
  10. CHIPLinuxStorage.h
  11. CHIPLinuxStorageIni.cpp
  12. CHIPLinuxStorageIni.h
  13. CHIPPlatformConfig.h
  14. ConfigurationManagerImpl.cpp
  15. ConfigurationManagerImpl.h
  16. ConnectivityManagerImpl.cpp
  17. ConnectivityManagerImpl.h
  18. DeviceNetworkProvisioningDelegateImpl.cpp
  19. DeviceNetworkProvisioningDelegateImpl.h
  20. Entropy.cpp
  21. InetPlatformConfig.h
  22. KeyValueStoreManagerImpl.cpp
  23. KeyValueStoreManagerImpl.h
  24. Logging.cpp
  25. MdnsImpl.cpp
  26. MdnsImpl.h
  27. PlatformManagerImpl.cpp
  28. PlatformManagerImpl.h
  29. PosixConfig.cpp
  30. PosixConfig.h
  31. README.md
  32. SystemPlatformConfig.h
  33. SystemTimeSupport.cpp
  34. ThreadStackManagerImpl.cpp
  35. ThreadStackManagerImpl.h
src/platform/Linux/README.md

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
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
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
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
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 functionaltiy

include/platform/Linux/BLEManagerImpl.h
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.