[CalendarServer-changes] [12630] CalendarServer/trunk/calendarserver/webadmin/logs.py
source_changes at macosforge.org
source_changes at macosforge.org
Wed Mar 12 11:24:14 PDT 2014
Revision: 12630
http://trac.calendarserver.org//changeset/12630
Author: wsanchez at apple.com
Date: 2014-02-09 19:53:34 -0800 (Sun, 09 Feb 2014)
Log Message:
-----------
Make a stream
Modified Paths:
--------------
CalendarServer/trunk/calendarserver/webadmin/logs.py
Modified: CalendarServer/trunk/calendarserver/webadmin/logs.py
===================================================================
--- CalendarServer/trunk/calendarserver/webadmin/logs.py 2014-02-10 03:40:02 UTC (rev 12629)
+++ CalendarServer/trunk/calendarserver/webadmin/logs.py 2014-02-10 03:53:34 UTC (rev 12630)
@@ -24,7 +24,11 @@
"LogEventsResource",
]
-from txweb2.stream import MemoryStream
+from zope.interface import implementer
+
+from twisted.internet.defer import succeed
+
+from txweb2.stream import IByteStream, fallbackSplit
from txweb2.resource import Resource
from txweb2.http_headers import MimeType
from txweb2.http import Response
@@ -78,7 +82,7 @@
def render(self, request):
response = Response()
- response.stream = MemoryStream(textAsEvent(u"Hello!"))
+ response.stream = LogObservingEventStream()
response.headers.setHeader(
"content-type", MimeType.fromString("text/event-stream")
)
@@ -86,5 +90,35 @@
+ at implementer(IByteStream)
+class LogObservingEventStream(object):
+ """
+ L{IStream} that observes log events and streams them out as HTML5
+ EventSource events.
+ """
+
+ length = None
+
+
+ def __init__(self):
+ self._closed = False
+
+
+ def read(self):
+ if self._closed:
+ return None
+
+ return succeed(textAsEvent(u"Hello!"))
+
+
+ def split(self, point):
+ return fallbackSplit(self, point)
+
+
+ def close(self):
+ self._closed = True
+
+
+
def textAsEvent(text):
return u"data: {text}\n\n".format(text=text).encode("utf-8")
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/2049dc34/attachment.html>
More information about the calendarserver-changes
mailing list