diff options
Diffstat (limited to 'mitmproxy/addons/eventstore.py')
-rw-r--r-- | mitmproxy/addons/eventstore.py | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/mitmproxy/addons/eventstore.py b/mitmproxy/addons/eventstore.py index 4e410c98..73ffc70c 100644 --- a/mitmproxy/addons/eventstore.py +++ b/mitmproxy/addons/eventstore.py @@ -1,19 +1,30 @@ -from typing import List # noqa +import collections +import typing # noqa import blinker + +from mitmproxy import command from mitmproxy.log import LogEntry class EventStore: - def __init__(self): - self.data = [] # type: List[LogEntry] + def __init__(self, size=10000): + self.data = collections.deque(maxlen=size) # type: typing.Deque[LogEntry] self.sig_add = blinker.Signal() self.sig_refresh = blinker.Signal() - def log(self, entry: LogEntry): + @property + def size(self) -> int: + return self.data.maxlen + + def log(self, entry: LogEntry) -> None: self.data.append(entry) self.sig_add.send(self, entry=entry) - def clear(self): + @command.command("eventstore.clear") + def clear(self) -> None: + """ + Clear the event log. + """ self.data.clear() self.sig_refresh.send(self) |