2021-04-10 00:30:08 +02:00
|
|
|
|
# standard imports
|
|
|
|
|
import logging
|
|
|
|
|
|
|
|
|
|
logg = logging.getLogger().getChild(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MemBackend:
|
|
|
|
|
|
|
|
|
|
def __init__(self, chain_spec, object_id, target_block=None):
|
|
|
|
|
self.object_id = object_id
|
|
|
|
|
self.chain_spec = chain_spec
|
|
|
|
|
self.block_height = 0
|
|
|
|
|
self.tx_height = 0
|
|
|
|
|
self.flags = 0
|
|
|
|
|
self.target_block = target_block
|
|
|
|
|
self.db_session = None
|
2021-04-15 09:59:45 +02:00
|
|
|
|
self.filter_names = []
|
|
|
|
|
self.filter_values = []
|
2021-04-10 00:30:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def connect(self):
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def disconnect(self):
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def set(self, block_height, tx_height):
|
|
|
|
|
logg.debug('stateless backend received {} {}'.format(block_height, tx_height))
|
|
|
|
|
self.block_height = block_height
|
|
|
|
|
self.tx_height = tx_height
|
2021-04-15 09:59:45 +02:00
|
|
|
|
for i in range(len(self.filter_values)):
|
|
|
|
|
self.filter_values[i] = False
|
2021-04-10 00:30:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get(self):
|
|
|
|
|
return ((self.block_height, self.tx_height), self.flags)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def target(self):
|
|
|
|
|
return (self.target_block, self.flags)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def register_filter(self, name):
|
2021-04-15 09:59:45 +02:00
|
|
|
|
self.filter_names.append(name)
|
|
|
|
|
self.filter_values.append(False)
|
2021-04-10 00:30:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def complete_filter(self, n):
|
2021-04-15 09:59:45 +02:00
|
|
|
|
self.filter_values[n-1] = True
|
|
|
|
|
logg.debug('set filter {}'.format(self.filter_names[n-1]))
|
2021-04-10 00:30:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
|
return "syncer membackend chain {} cursor".format(self.get())
|
|
|
|
|
|