[Checkins] SVN: zope3org/trunk/src/zorg/live/ Added a marker
interface and a factory for live page requests.
Uwe Oestermeier
uwe_oestermeier at iwm-kmrc.de
Fri May 26 06:34:41 EDT 2006
Log message for revision 68305:
Added a marker interface and a factory for live page requests.
Changed:
U zope3org/trunk/src/zorg/live/interfaces.py
U zope3org/trunk/src/zorg/live/page/page.py
U zope3org/trunk/src/zorg/live/server.py
-=-
Modified: zope3org/trunk/src/zorg/live/interfaces.py
===================================================================
--- zope3org/trunk/src/zorg/live/interfaces.py 2006-05-26 09:03:05 UTC (rev 68304)
+++ zope3org/trunk/src/zorg/live/interfaces.py 2006-05-26 10:34:40 UTC (rev 68305)
@@ -12,49 +12,10 @@
#
##############################################################################
"""
-
$Id: interfaces.py 38949 2005-10-08 13:28:58Z dominikhuber $
"""
from zope.interface import Interface
-from zope.app.annotation.interfaces import IAnnotatable
-from zope.app.annotation.interfaces import IAttributeAnnotatable
-
-from zope.interface.common.mapping import IEnumerableMapping
-from zope.interface.common.mapping import IWriteMapping
-
-class ISeeable(IAnnotatable):
- """This interface marks components that should provide annotable seen
- marker.
-
- Components has to provide a annotations mechanism.
- """
-
-
-class ISeeableAttributeAnnotable(ISeeable, IAttributeAnnotatable):
- """This interface marks components that should provide
- attribute annotable seen marker.
- """
-
-
-class ISeen(IEnumerableMapping, IWriteMapping):
- """Mark an object as seen or unseen in an enumerable mapping with
- principal ids as keys and datetime objects as values.
- """
-
- def markAsSeen(self, principal_id, datetime=None) :
- """ Stores the datetime at which a principal has seen the item.
- Uses the current datetime as a default value.
- """
-
- def markAsUnseen(self, principal_id) :
- """ Removes the mark. """
-
- def hasSeen(self, principal_id) :
- """ Returns `True` iff the principal has seen the item. """
-
- def when(self) :
- """ Returns the datetime at which the user has seen the item. """
-
-
+class ILiveRequest(Interface) :
+ """ Marker interface for requests created by the livepage server. """
\ No newline at end of file
Modified: zope3org/trunk/src/zorg/live/page/page.py
===================================================================
--- zope3org/trunk/src/zorg/live/page/page.py 2006-05-26 09:03:05 UTC (rev 68304)
+++ zope3org/trunk/src/zorg/live/page/page.py 2006-05-26 10:34:40 UTC (rev 68305)
@@ -28,9 +28,11 @@
from zope.app.keyreference.interfaces import IKeyReference
from zope.app.publisher.browser import BrowserView
+from zope.app.twisted.interfaces import IServerType
from zorg.ajax.page import ComposedAjaxPage
+from zorg.live.interfaces import ILiveRequest
from zorg.live.page.interfaces import ILivePage
from zorg.live.page.interfaces import ILivePageManager
from zorg.live.page.event import dict2event
@@ -58,6 +60,12 @@
clientFactory = LivePageClient
clientUUID = None
+
+ def isLive(self) :
+ """ Returns True if the livepage server is available. """
+ return ILiveRequest.providedBy(self.request)
+
+
def notify(self, event) :
""" Default implementation of an event handler. Must be specialized. """
pass
Modified: zope3org/trunk/src/zorg/live/server.py
===================================================================
--- zope3org/trunk/src/zorg/live/server.py 2006-05-26 09:03:05 UTC (rev 68304)
+++ zope3org/trunk/src/zorg/live/server.py 2006-05-26 10:34:40 UTC (rev 68305)
@@ -28,7 +28,10 @@
from twisted.web2 import stream
from zope.component import ComponentLookupError
+from zope.interface import implements
+from zope.interface import alsoProvides
+from zope.app.publication.httpfactory import HTTPPublicationRequestFactory
from zope.app.wsgi import WSGIPublisherApplication
from zope.app.twisted.server import ServerType
from zope.app.twisted.http import Prebuffer
@@ -43,6 +46,8 @@
from zorg.live.page.event import ProgressEvent
from zorg.live.page.event import dict2event
+import interfaces
+
badRequest = object()
securityInputLimit = 64000
requestTimeOut = 30
@@ -414,12 +419,24 @@
return self.res, segments
+class HTTPLivePageRequestFactory(HTTPPublicationRequestFactory) :
+ """ A special request factory for live page servers.
+ Marks all requests as live page requests.
+ """
+ def __call__(self, input_stream, env, output_stream=None) :
+ request = super(HTTPLivePageRequestFactory, self).__call__(input_stream,
+ env, output_stream)
+ alsoProvides(request, interfaces.ILiveRequest)
+ return request
+
+
+
def createHTTPFactory(db):
reactor.threadpool.adjustPoolsize(10, 20)
- resource = WSGIPublisherApplication(db)
+ resource = WSGIPublisherApplication(db, factory=HTTPLivePageRequestFactory)
resource = LivePageWSGIResource(resource)
resource = LiveLogWrapperResource(resource)
resource = LivePrebuffer(resource)
More information about the Checkins
mailing list