aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/addons/eventstore.py
diff options
context:
space:
mode:
Diffstat (limited to 'mitmproxy/addons/eventstore.py')
-rw-r--r--mitmproxy/addons/eventstore.py21
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)