[lock] Extract set_state_ helper to reduce code duplication (#13359)

This commit is contained in:
J. Nick Koston
2026-01-19 17:40:51 -10:00
committed by GitHub
parent 280d460025
commit d0e50ed030
2 changed files with 8 additions and 7 deletions
+5 -7
View File
@@ -28,16 +28,14 @@ const LogString *lock_state_to_string(LockState state) {
Lock::Lock() : state(LOCK_STATE_NONE) {} Lock::Lock() : state(LOCK_STATE_NONE) {}
LockCall Lock::make_call() { return LockCall(this); } LockCall Lock::make_call() { return LockCall(this); }
void Lock::lock() { void Lock::set_state_(LockState state) {
auto call = this->make_call(); auto call = this->make_call();
call.set_state(LOCK_STATE_LOCKED); call.set_state(state);
this->control(call);
}
void Lock::unlock() {
auto call = this->make_call();
call.set_state(LOCK_STATE_UNLOCKED);
this->control(call); this->control(call);
} }
void Lock::lock() { this->set_state_(LOCK_STATE_LOCKED); }
void Lock::unlock() { this->set_state_(LOCK_STATE_UNLOCKED); }
void Lock::open() { void Lock::open() {
if (traits.get_supports_open()) { if (traits.get_supports_open()) {
ESP_LOGD(TAG, "'%s' Opening.", this->get_name().c_str()); ESP_LOGD(TAG, "'%s' Opening.", this->get_name().c_str());
+3
View File
@@ -156,6 +156,9 @@ class Lock : public EntityBase {
protected: protected:
friend LockCall; friend LockCall;
/// Helper for lock/unlock convenience methods
void set_state_(LockState state);
/** Perform the open latch action with hardware. This method is optional to implement /** Perform the open latch action with hardware. This method is optional to implement
* when creating a new lock. * when creating a new lock.
* *