sp-hydra-veil-core/core/observers/Notifications.py

28 lines
669 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()
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)