Files
@ 095908159393
Branch filter:
Location: Morevna/src/netnode.py - annotation
095908159393
1.1 KiB
text/x-python
handled connection error, skipped needless tree rebuild
75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 095908159393 095908159393 095908159393 095908159393 095908159393 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 | import socket
import logging as log
from networkers import NetworkReader,NetworkWriter
from hashtree import HashTree
class BaseConnection: # abstract
def __init__(self):
self._socket=None
self.incoming=None
self.outcoming=None
def createNetworkers(self):
fr=self._socket.makefile(mode="rb")
fw=self._socket.makefile(mode="wb")
self.incoming=NetworkReader(fr)
self.outcoming=NetworkWriter(fw)
def __enter__(self):
return self.incoming,self.outcoming
def __exit__(self, exc_type, exc_val, exc_tb):
try:
self._socket.shutdown(socket.SHUT_RDWR)
self._socket.close()
except OSError:
log.warning("encountered an error when shutting down the connection")
class NetNode:
def __init__(self,filename,treeFile=""):
self._incoming=None
self._outcoming=None
self._filename=filename
self._treeFile=treeFile
if treeFile:
self._tree=HashTree.load(treeFile)
else:
self._tree=HashTree.fromFile(filename)
self._newLeaves=dict()
def _updateTree(self):
log.info("updating hash tree...")
for (k,v) in self._newLeaves.items():
self._tree.updateLeaf(k, v)
self._tree.save(self._treeFile)
|