mirror of
https://github.com/esphome/esphome.git
synced 2026-06-24 13:45:15 +00:00
Mark user-configurable classes as final (part 20/21)
Add the C++ `final` specifier to leaf, user-configurable component classes and automation action/trigger/condition primitives so that classes meant to be terminal cannot be subclassed by external components. Only classes never used as a base anywhere in the tree are marked. Part 20 of 21, split alphabetically by component (wts01 .. zephyr_ble_server).
This commit is contained in:
@@ -8,7 +8,7 @@ namespace esphome::wts01 {
|
||||
|
||||
constexpr uint8_t PACKET_SIZE = 9;
|
||||
|
||||
class WTS01Sensor : public sensor::Sensor, public uart::UARTDevice, public Component {
|
||||
class WTS01Sensor final : public sensor::Sensor, public uart::UARTDevice, public Component {
|
||||
public:
|
||||
void loop() override;
|
||||
void dump_config() override;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace esphome::x9c {
|
||||
|
||||
class X9cOutput : public output::FloatOutput, public Component {
|
||||
class X9cOutput final : public output::FloatOutput, public Component {
|
||||
public:
|
||||
void set_cs_pin(InternalGPIOPin *pin) { cs_pin_ = pin; }
|
||||
void set_inc_pin(InternalGPIOPin *pin) { inc_pin_ = pin; }
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace esphome::xdb401 {
|
||||
|
||||
class XDB401Component : public PollingComponent, public i2c::I2CDevice {
|
||||
class XDB401Component final : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
void set_temperature_sensor(sensor::Sensor *temperature_sensor) { this->temperature_sensor_ = temperature_sensor; }
|
||||
void set_pressure_sensor(sensor::Sensor *pressure_sensor) { this->pressure_sensor_ = pressure_sensor; }
|
||||
|
||||
@@ -20,7 +20,7 @@ enum XGZP68XXOversampling : uint8_t {
|
||||
XGZP68XX_OVERSAMPLING_UNKNOWN = (uint8_t) -1,
|
||||
};
|
||||
|
||||
class XGZP68XXComponent : public PollingComponent, public sensor::Sensor, public i2c::I2CDevice {
|
||||
class XGZP68XXComponent final : public PollingComponent, public sensor::Sensor, public i2c::I2CDevice {
|
||||
public:
|
||||
SUB_SENSOR(temperature)
|
||||
SUB_SENSOR(pressure)
|
||||
|
||||
@@ -72,7 +72,7 @@ optional<XiaomiParseResult> parse_xiaomi_header(const esp32_ble_tracker::Service
|
||||
bool decrypt_xiaomi_payload(std::vector<uint8_t> &raw, const uint8_t *bindkey, const uint64_t &address);
|
||||
bool report_xiaomi_results(const optional<XiaomiParseResult> &result, const char *address);
|
||||
|
||||
class XiaomiListener : public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiListener final : public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
bool parse_device(const esp32_ble_tracker::ESPBTDevice &device) override;
|
||||
};
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_cgdk2 {
|
||||
|
||||
class XiaomiCGDK2 : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiCGDK2 final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; };
|
||||
void set_bindkey(const char *bindkey);
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_cgg1 {
|
||||
|
||||
class XiaomiCGG1 : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiCGG1 final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
void set_bindkey(const char *bindkey);
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
namespace esphome::xiaomi_cgpr1 {
|
||||
|
||||
class XiaomiCGPR1 : public Component,
|
||||
public binary_sensor::BinarySensorInitiallyOff,
|
||||
public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiCGPR1 final : public Component,
|
||||
public binary_sensor::BinarySensorInitiallyOff,
|
||||
public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
void set_bindkey(const char *bindkey);
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_gcls002 {
|
||||
|
||||
class XiaomiGCLS002 : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiGCLS002 final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_hhccjcy01 {
|
||||
|
||||
class XiaomiHHCCJCY01 : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiHHCCJCY01 final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
namespace esphome::xiaomi_hhccjcy10 {
|
||||
|
||||
class XiaomiHHCCJCY10 : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiHHCCJCY10 final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { this->address_ = address; }
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_hhccpot002 {
|
||||
|
||||
class XiaomiHHCCPOT002 : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiHHCCPOT002 final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_jqjcy01ym {
|
||||
|
||||
class XiaomiJQJCY01YM : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiJQJCY01YM final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_lywsd02 {
|
||||
|
||||
class XiaomiLYWSD02 : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiLYWSD02 final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_lywsd02mmc {
|
||||
|
||||
class XiaomiLYWSD02MMC : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiLYWSD02MMC final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { this->address_ = address; }
|
||||
void set_bindkey(const char *bindkey);
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_lywsd03mmc {
|
||||
|
||||
class XiaomiLYWSD03MMC : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiLYWSD03MMC final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; };
|
||||
void set_bindkey(const char *bindkey);
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_lywsdcgq {
|
||||
|
||||
class XiaomiLYWSDCGQ : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiLYWSDCGQ final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_mhoc303 {
|
||||
|
||||
class XiaomiMHOC303 : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiMHOC303 final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_mhoc401 {
|
||||
|
||||
class XiaomiMHOC401 : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiMHOC401 final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; };
|
||||
void set_bindkey(const char *bindkey);
|
||||
|
||||
@@ -16,7 +16,7 @@ struct ParseResult {
|
||||
optional<float> impedance;
|
||||
};
|
||||
|
||||
class XiaomiMiscale : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiMiscale final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; };
|
||||
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
namespace esphome::xiaomi_mjyd02yla {
|
||||
|
||||
class XiaomiMJYD02YLA : public Component,
|
||||
public binary_sensor::BinarySensorInitiallyOff,
|
||||
public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiMJYD02YLA final : public Component,
|
||||
public binary_sensor::BinarySensorInitiallyOff,
|
||||
public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
void set_bindkey(const char *bindkey);
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
|
||||
namespace esphome::xiaomi_mue4094rt {
|
||||
|
||||
class XiaomiMUE4094RT : public Component,
|
||||
public binary_sensor::BinarySensorInitiallyOff,
|
||||
public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiMUE4094RT final : public Component,
|
||||
public binary_sensor::BinarySensorInitiallyOff,
|
||||
public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
namespace esphome::xiaomi_rtcgq02lm {
|
||||
|
||||
class XiaomiRTCGQ02LM : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiRTCGQ02LM final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; };
|
||||
void set_bindkey(const char *bindkey);
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
namespace esphome::xiaomi_wx08zm {
|
||||
|
||||
class XiaomiWX08ZM : public Component,
|
||||
public binary_sensor::BinarySensorInitiallyOff,
|
||||
public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiWX08ZM final : public Component,
|
||||
public binary_sensor::BinarySensorInitiallyOff,
|
||||
public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { address_ = address; }
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::xiaomi_xmwsdj04mmc {
|
||||
|
||||
class XiaomiXMWSDJ04MMC : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
class XiaomiXMWSDJ04MMC final : public Component, public esp32_ble_tracker::ESPBTDeviceListener {
|
||||
public:
|
||||
void set_address(uint64_t address) { this->address_ = address; }
|
||||
void set_bindkey(const char *bindkey);
|
||||
|
||||
@@ -17,7 +17,7 @@ enum {
|
||||
XL9535_CONFIG_PORT_1_REGISTER = 0x07,
|
||||
};
|
||||
|
||||
class XL9535Component : public Component, public i2c::I2CDevice {
|
||||
class XL9535Component final : public Component, public i2c::I2CDevice {
|
||||
public:
|
||||
bool digital_read(uint8_t pin);
|
||||
void digital_write(uint8_t pin, bool value);
|
||||
@@ -28,7 +28,7 @@ class XL9535Component : public Component, public i2c::I2CDevice {
|
||||
float get_setup_priority() const override { return setup_priority::IO; }
|
||||
};
|
||||
|
||||
class XL9535GPIOPin : public GPIOPin {
|
||||
class XL9535GPIOPin final : public GPIOPin {
|
||||
public:
|
||||
void set_parent(XL9535Component *parent) { this->parent_ = parent; }
|
||||
void set_pin(uint8_t pin) { this->pin_ = pin; }
|
||||
|
||||
@@ -11,9 +11,9 @@ namespace esphome::xpt2046 {
|
||||
|
||||
using namespace touchscreen;
|
||||
|
||||
class XPT2046Component : public Touchscreen,
|
||||
public spi::SPIDevice<spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW,
|
||||
spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_2MHZ> {
|
||||
class XPT2046Component final : public Touchscreen,
|
||||
public spi::SPIDevice<spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW,
|
||||
spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_2MHZ> {
|
||||
public:
|
||||
/// Set the threshold for the touch detection.
|
||||
void set_threshold(int16_t threshold) { this->threshold_ = threshold; }
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace esphome::yashima {
|
||||
|
||||
class YashimaClimate : public climate::Climate, public Component {
|
||||
class YashimaClimate final : public climate::Climate, public Component {
|
||||
public:
|
||||
void setup() override;
|
||||
void set_transmitter(remote_transmitter::RemoteTransmitterComponent *transmitter) {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
namespace esphome::zephyr {
|
||||
|
||||
class CdcAcm : public Component {
|
||||
class CdcAcm final : public Component {
|
||||
public:
|
||||
CdcAcm();
|
||||
void setup() override;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <zephyr/device.h>
|
||||
namespace esphome::zephyr {
|
||||
|
||||
class ZephyrGPIOPin : public InternalGPIOPin {
|
||||
class ZephyrGPIOPin final : public InternalGPIOPin {
|
||||
public:
|
||||
ZephyrGPIOPin(const device *gpio, int gpio_size, const char *pin_name_prefix) {
|
||||
this->gpio_ = gpio;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace esphome::zephyr_ble_server {
|
||||
|
||||
class BLEServer : public Component {
|
||||
class BLEServer final : public Component {
|
||||
public:
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
@@ -21,7 +21,7 @@ class BLEServer : public Component {
|
||||
CallbackManager<void(uint32_t)> passkey_cb_;
|
||||
};
|
||||
|
||||
template<typename... Ts> class BLENumericComparisonReplyAction : public Action<Ts...> {
|
||||
template<typename... Ts> class BLENumericComparisonReplyAction final : public Action<Ts...> {
|
||||
public:
|
||||
explicit BLENumericComparisonReplyAction(BLEServer *parent) : parent_(parent) {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user