Introduce a filtered flow writer, and use it in dump.py

Fixes #104
This commit is contained in:
Aldo Cortesi
2013-03-14 09:19:43 +13:00
parent c34d1e3de6
commit cfb5ba89ce
9 changed files with 48 additions and 18 deletions

View File

@@ -1588,8 +1588,8 @@ class FlowMaster(controller.Master):
self.stream.add(i)
self.stop_stream()
def start_stream(self, fp):
self.stream = FlowWriter(fp)
def start_stream(self, fp, filt):
self.stream = FilteredFlowWriter(fp, filt)
def stop_stream(self):
self.stream.fo.close()
@@ -1635,3 +1635,16 @@ class FlowReader:
return
raise FlowReadError("Invalid data format.")
class FilteredFlowWriter:
def __init__(self, fo, filt):
self.fo = fo
self.filt = filt
def add(self, f):
if self.filt and not f.match(self.filt):
return
d = f._get_state()
tnetstring.dump(d, self.fo)