Files
@ d76b98d421ae
Branch filter:
Location: Morevna/src/netnode.py - annotation
d76b98d421ae
1.0 KiB
text/x-python
enhanced stats
75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 75e070b6b447 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):
self._socket.shutdown(socket.SHUT_RDWR)
self._socket.close()
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)
|