mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-06-13 16:34:34 +12:00
3516242500
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
35 lines
815 B
Python
35 lines
815 B
Python
#!/usr/bin/env python
|
|
# --!-- coding: utf8 --!--
|
|
|
|
from collections.abc import Callable
|
|
from enum import Enum, unique
|
|
|
|
from manuskript.data.unique_id import UniqueID
|
|
|
|
|
|
@unique
|
|
class LinkAction(Enum):
|
|
DELETE = 0
|
|
UPDATE = 1
|
|
RELOAD = 2
|
|
|
|
|
|
class Links:
|
|
|
|
def __init__(self):
|
|
self.callbacks = list()
|
|
|
|
def add(self, callback: Callable[[LinkAction, UniqueID, any], None]):
|
|
self.callbacks.append(callback)
|
|
|
|
def remove(self, callback: Callable[[LinkAction, UniqueID, any], None]):
|
|
if callback in self.callbacks:
|
|
self.callbacks.remove(callback)
|
|
|
|
def call(self, action: LinkAction, UID: UniqueID, host: any):
|
|
for callback in self.callbacks:
|
|
callback(action, UID, host)
|
|
|
|
if action == LinkAction.DELETE:
|
|
self.callbacks.clear()
|