chainsyncer/chainsyncer/session.py

31 lines
669 B
Python
Raw Normal View History

2022-03-16 19:44:13 +01:00
# standard imports
import uuid
class SyncSession:
2022-03-17 20:36:27 +01:00
def __init__(self, session_store):
self.session_store = session_store
2022-03-16 19:44:13 +01:00
self.filters = []
self.started = False
2022-03-16 19:44:13 +01:00
def add_filter(self, fltr):
if self.started:
raise RuntimeError('filters cannot be changed after syncer start')
2022-03-17 20:36:27 +01:00
self.session_store.register(fltr)
2022-03-16 19:44:13 +01:00
self.filters.append(fltr)
def start(self):
self.started = True
def filter(self, conn, block, tx):
self.sync_state.connect()
for fltr in filters:
self.sync_start.lock()
self.sync_start.unlock()
self.sync_start.disconnect()