Files
@ ffd985ff1ae6
Branch filter:
Location: Morevna/src/netnode.py - annotation
ffd985ff1ae6
1.1 KiB
text/x-python
configuration loaded from a configuration file
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 9f2b0a4f3538 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("broken 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)
|