mirror of
https://github.com/binary-kitchen/doorlockd
synced 2024-12-31 22:01:52 +01:00
36 lines
913 B
Python
36 lines
913 B
Python
"""
|
|
Doorlockd -- Binary Kitchen's smart door opener
|
|
|
|
Copyright (c) Binary Kitchen e.V., 2022
|
|
|
|
Author:
|
|
Thomas Schmid <tom@binary-kitchen.de>
|
|
|
|
This work is licensed under the terms of the GNU GPL, version 2. See
|
|
the LICENSE file in the top-level directory.
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
details.
|
|
"""
|
|
|
|
from abc import ABC, abstractmethod
|
|
|
|
|
|
class DoorlockBackend(ABC):
|
|
def __init__(self):
|
|
self.callbacks = list()
|
|
self.current_state = None
|
|
|
|
def update_state(self):
|
|
self.state_change_callback(self.current_state)
|
|
|
|
@abstractmethod
|
|
def set_state(self, state):
|
|
self.current_state = state
|
|
|
|
@abstractmethod
|
|
def get_state(self, state):
|
|
return self.current_state
|