30 lines
724 B
Python
30 lines
724 B
Python
|
|
from enum import Enum, auto
|
|
|
|
class EventType(Enum):
|
|
SESSION_PROFILE_ENABLE = auto()
|
|
SESSION_PROFILE_DISABLE = auto()
|
|
SYSTEM_ENABLE = auto()
|
|
SYSTEM_DISABLE = auto()
|
|
PROFILE_CREATED = auto()
|
|
PROFILE_DELETED = auto()
|
|
STATUS_UPDATE = auto()
|
|
RESUME_ACTIONS = auto()
|
|
|
|
class Notifications:
|
|
_subscribers = {}
|
|
|
|
@classmethod
|
|
def subscribe(cls, event_type: EventType, callback):
|
|
if event_type not in cls._subscribers:
|
|
cls._subscribers[event_type] = []
|
|
cls._subscribers[event_type].append(callback)
|
|
|
|
@classmethod
|
|
def emit(cls, event_type: EventType, data=None):
|
|
for callback in cls._subscribers.get(event_type, []):
|
|
callback(data)
|
|
|
|
|
|
|
|
|