From a31101dc21afc4c4f2e32d06141b0ac627396ee7 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Mon, 26 Mar 2012 20:46:59 +0400 Subject: [PATCH] add two update methods for processor --- server.py | 18 +++++------------- stratum.py | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/server.py b/server.py index 07b1566..909902a 100755 --- a/server.py +++ b/server.py @@ -427,6 +427,9 @@ class AbeProcessor(stratum.Processor): response = { 'id':message_id, 'result':result } self.push_response(session,response) + def get_status(self,addr): + return store.get_status(addr) + #################################################################### @@ -560,10 +563,7 @@ if __name__ == '__main__': for session_id in sessions_sub_numblocks.keys(): send_numblocks(session_id) - for session in stratum_processor.sessions: - if session.numblocks_sub is not None: - response = { 'id':session.numblocks_sub, 'result':block_number } - stratum_processor.push_response(session,response) + stratum_processor.update_from_blocknum(block_number) while True: try: @@ -572,15 +572,7 @@ if __name__ == '__main__': break do_update_address(addr) - for session in stratum_processor.sessions: - m = session.addresses_sub.get(addr) - if m: - status = store.get_status( addr ) - message_id, last_status = m - if status != last_status: - session.subscribe_to_address(message_id, status) - response = { 'id':message_id, 'result':status } - stratum_processor.push_response(session,response) + stratum_processor.update_from_address(addr) time.sleep(10) print "server stopped" diff --git a/stratum.py b/stratum.py index d91b7d1..ffc3d1f 100644 --- a/stratum.py +++ b/stratum.py @@ -61,6 +61,29 @@ class Processor(threading.Thread): # When ready, you call # self.push_response(session,response) + def update_from_blocknum(self,block_number): + for session in self.sessions: + if session.numblocks_sub is not None: + response = { 'id':session.numblocks_sub, 'result':block_number } + self.push_response(session,response) + + def update_from_address(self,addr): + for session in self.sessions: + m = session.addresses_sub.get(addr) + if m: + status = self.get_status( addr ) + message_id, last_status = m + if status != last_status: + session.subscribe_to_address(message_id, status) + response = { 'id':message_id, 'result':status } + self.push_response(session,response) + + def get_status(self,addr): + # return status of an address + # return store.get_status(addr) + pass + + class Session: def __init__(self, connection, address): -- 1.7.1