18 lines
605 B
Python
18 lines
605 B
Python
from typing import Dict, List, Tuple
|
|
from .crdt import DeltaCRDT
|
|
|
|
class DeltaStore:
|
|
"""Simple wrapper around DeltaCRDT to expose a store-like interface."""
|
|
|
|
def __init__(self) -> None:
|
|
self.crdt = DeltaCRDT()
|
|
|
|
def add_local_delta(self, device: str, ts: float, value: float) -> str:
|
|
return self.crdt.add_local_delta(device, ts, value)
|
|
|
|
def merge_remote(self, remote_state: Dict[str, List[Tuple[float, float, str]]]) -> None:
|
|
self.crdt.merge(remote_state)
|
|
|
|
def get_state(self) -> Dict[str, List[Tuple[float, float, str]]]:
|
|
return self.crdt.export_state()
|