SF.net SVN: fclient: [399] trunk/sandbox/fcp2/client.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <jU...@us...> - 2008-05-05 07:57:18
|
Revision: 399
http://fclient.svn.sourceforge.net/fclient/?rev=399&view=rev
Author: jUrner
Date: 2008-05-05 00:57:16 -0700 (Mon, 05 May 2008)
Log Message:
-----------
Fcp now allows to remove non-persistent requests. adapt
Modified Paths:
--------------
trunk/sandbox/fcp2/client.py
Modified: trunk/sandbox/fcp2/client.py
===================================================================
--- trunk/sandbox/fcp2/client.py 2008-04-09 21:46:27 UTC (rev 398)
+++ trunk/sandbox/fcp2/client.py 2008-05-05 07:57:16 UTC (rev 399)
@@ -138,8 +138,15 @@
#
#FIX: workaround for the "related" part
#------------------------------------------------------------------------------------------------------------------------------------------------
-
+ # [0002200 - handle persistent and non-peristent request uniformly]
+#
+# removbe request is now handled uniformly in Fcp. modify request not yet.
+#
+#-------------------------------------------------------------------------------------------------------------------------------------------------
+
+
+
# Todos
#------------------------------------------------------------------------------------------------------------------------------------------------
# clean up
@@ -307,6 +314,7 @@
self.events.ClientDisconnected(msg)
+ #TODO: check if this method is still needed
def _finalizeRequest(self, msg, request, event):
"""Finalzes a request
@param msg: message that is the reason for finalizing
@@ -320,7 +328,7 @@
that the request has been completed and remove it fom our queue if necessary.
Non Get / Put requests will be removed in any case.
"""
- removeRequest = msg == message.ProtocolError or msg == message.PersistentRequestRemoved
+ removeRequest = msg == message.ProtocolError or msg == message.PersistentRequestRemoved # TODO: PersistentRequestRemoved???
if not removeRequest:
#NOTE: non Get / Put related requests do not have a Persistence param
removeRequest = request.params.get('Persistence', consts.Persistence.Connection) == consts.Persistence.Connection
@@ -844,7 +852,10 @@
code = msg['Code']
if code == consts.FetchError.Canceled:
- return False
+ initialRequest['RequestStatus'] |= onsts.RequestStatus.Removed | consts.RequestStatus.Completed | consts.RequestStatus.RemovedFromQueue
+ del self._requests[requestIdentifier]
+ self.events.RequestRemoved(initialRequest)
+ return True
# check if it is one of our requests for key information
if code == consts.FetchError.TooBig and initialRequest['RequestType'] == consts.RequestType.GetKeyInfo:
@@ -941,13 +952,15 @@
return True
- elif msg == message.PersistentRequestRemoved:
- if initialRequest is None:
- return False
+ # don't handle PersistentRequestRemoved. instead we handle it in Get/PutFailed
+ #
+ #elif msg == message.PersistentRequestRemoved:
+ # if initialRequest is None:
+ # return False
- initialRequest['RequestStatus'] |= consts.RequestStatus.Removed
- self._finalizeRequest(msg, initialRequest, self.events.RequestRemoved)
- return True
+ # initialRequest['RequestStatus'] |= consts.RequestStatus.Removed
+ # self._finalizeRequest(msg, initialRequest, self.events.RequestRemoved)
+ # return True
elif msg == message.SimpleProgress:
@@ -970,7 +983,10 @@
code = msg['Code']
if code == consts.InsertError.Canceled:
- return False
+ initialRequest['RequestStatus'] |= onsts.RequestStatus.Removed | consts.RequestStatus.Completed | consts.RequestStatus.RemovedFromQueue
+ del self._requests[requestIdentifier]
+ self.events.RequestRemoved(initialRequest)
+ return True
initialRequest['RequestStatus'] |= consts.RequestStatus.Error
initialRequest['ErrorMessage'] = msg
@@ -2145,22 +2161,15 @@
initialRequest = self._requests[requestIdentifier]
initialRequest['RequestStatus'] |= consts.RequestStatus.Removed | consts.RequestStatus.Completed
if initialRequest['RequestType'] & (consts.RequestType.MaskGet | consts.RequestType.MaskPut):
-
- # remove Persistence.Connection emidiately
- # ..make up a PersistentRequestRemoved message for this case
- if initialRequest['Persistence'] == consts.Persistence.Connection:
- msg = message.PersistentRequestRemoved(Identifier=requestIdentifier, Global=False)
- self._finalizeRequest(msg, initialRequest, self.events.RequestRemoved)
- else:
- self.sendMessage(
- message.RemovePersistentRequest(
+ self.sendMessage(
+ message.RemoveRequest(
Global=False,
Identifier=requestIdentifier,
)
- )
+ )
else:
del self._requests[requestIdentifier]
-
+
def resendRequest(self, request):
"""Resends a request
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|