move LoopingCallManager to own module

This commit is contained in:
Job Evers-Meltzer 2016-10-05 14:16:54 -05:00
parent d5f0001950
commit ddb88eb1c9
2 changed files with 26 additions and 22 deletions

View file

@ -0,0 +1,22 @@
class LoopingCallManager(object):
def __init__(self):
self.calls = {}
def register_looping_call(self, name, call):
assert name not in self.calls, '{} is already registered'.format(name)
self.calls[name] = call
def start(self, name, *args):
lcall = self.calls[name]
if not lcall.running:
lcall.start(*args)
def stop(self, name):
self.calls[name].stop()
def shutdown(self):
for lcall in self.calls.itervalues():
if lcall.running:
lcall.stop()

View file

@ -28,6 +28,9 @@ from lbrynet import __version__ as lbrynet_version
# TODO: importing this when internet is disabled raises a socket.gaierror # TODO: importing this when internet is disabled raises a socket.gaierror
from lbryum.version import LBRYUM_VERSION as lbryum_version from lbryum.version import LBRYUM_VERSION as lbryum_version
from lbrynet import analytics from lbrynet import analytics
from lbrynet.core.looping_call_manager import LoopingCallManager
from lbrynet.core.PaymentRateManager import PaymentRateManager
from lbrynet.core.server.BlobAvailabilityHandler import BlobAvailabilityHandlerFactory
from lbrynet.core.server.BlobRequestHandler import BlobRequestHandlerFactory from lbrynet.core.server.BlobRequestHandler import BlobRequestHandlerFactory
from lbrynet.core.server.ServerProtocol import ServerProtocolFactory from lbrynet.core.server.ServerProtocol import ServerProtocolFactory
from lbrynet.core.Error import UnknownNameError, InsufficientFundsError, InvalidNameError from lbrynet.core.Error import UnknownNameError, InsufficientFundsError, InvalidNameError
@ -135,27 +138,6 @@ class Parameters(object):
self.__dict__.update(kwargs) self.__dict__.update(kwargs)
class LoopingCallManager(object):
def __init__(self):
self.calls = {}
def register_looping_call(self, name, *args):
self.calls[name] = LoopingCall(*args)
def start(self, name, *args):
lcall = self.calls[name]
if not lcall.running:
lcall.start(*args)
def stop(self, name):
self.calls[name].stop()
def shutdown(self):
for lcall in self.calls.itervalues():
if lcall.running:
lcall.stop()
class CheckInternetConnection(object): class CheckInternetConnection(object):
def __init__(self, daemon): def __init__(self, daemon):
self.daemon = daemon self.daemon = daemon
@ -422,7 +404,7 @@ class Daemon(jsonrpc.JSONRPC):
('pending_claim_checker', self._check_pending_claims), ('pending_claim_checker', self._check_pending_claims),
] ]
for name, fn in looping_calls: for name, fn in looping_calls:
self.looping_call_manager.register_looping_call(name, fn) self.looping_call_manager.register_looping_call(name, LoopingCall(fn))
self.sd_identifier = StreamDescriptorIdentifier() self.sd_identifier = StreamDescriptorIdentifier()
self.stream_info_manager = TempEncryptedFileMetadataManager() self.stream_info_manager = TempEncryptedFileMetadataManager()