Skip to content

Commit 5d4b962

Browse files
committed
feat(models): represents a role in the cluster
1 parent 8b65566 commit 5d4b962

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

konsensus/models/role.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from typing import Callable
2+
from node import Node
3+
4+
5+
class Role:
6+
"""Represents roles corresponding to the cluster"""
7+
def __init__(self, node: Node) -> None:
8+
self.node = node
9+
self.node.register(self)
10+
self.running = True
11+
self.logger = node.logger.getChild(type(self).__name__)
12+
13+
def set_timer(self, seconds: int, callback: Callable):
14+
return self.node.network.set_timer(self.node.address, seconds, lambda: self.running and callback())
15+
16+
def stop(self):
17+
self.running = False
18+
self.node.unregister(self)

0 commit comments

Comments
 (0)