SF.net SVN: fclient: [129] trunk/sandbox/fcp/fcp2_0_client.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <ju...@us...> - 2008-02-04 03:14:19
|
Revision: 129
http://fclient.svn.sourceforge.net/fclient/?rev=129&view=rev
Author: jurner
Date: 2008-02-03 19:14:24 -0800 (Sun, 03 Feb 2008)
Log Message:
-----------
fixes request.status
Modified Paths:
--------------
trunk/sandbox/fcp/fcp2_0_client.py
Modified: trunk/sandbox/fcp/fcp2_0_client.py
===================================================================
--- trunk/sandbox/fcp/fcp2_0_client.py 2008-02-03 13:16:37 UTC (rev 128)
+++ trunk/sandbox/fcp/fcp2_0_client.py 2008-02-04 03:14:24 UTC (rev 129)
@@ -102,14 +102,19 @@
hack = SysPathHack(3)
-from fcp_lib import events, namespace
+from fcp_lib import namespace
del hack
#<-- rel import hack
-import fcp2_0_message
import fcp2_0_consts as consts
+from fcp2_0_events import Events
+from fcp2_0_config import Config
+from fcp2_0_message import Message
+import fcp2_0_params as FcParams
+from fcp2_0_uri import Uri
+
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
@@ -193,67 +198,14 @@
ExpectedFcpVersion = 2.0
ExpectedNodeBuild = 1107
- from fcp2_0_config import Config
consts = consts
- from fcp2_0_message import Message
- import fcp2_0_params as FcParams
- from fcp2_0_uri import Uri
+ Config = Config
+ Message = Message
+ FcParams = FcParams
+ Uri = Uri
- class Events(events.Events):
- """All events the client supports"""
- _events_ = (
-
- 'Idle',
-
- 'ClientConnected',
- 'ClientDisconnected',
-
- 'RequestCompleted', # the request is not removed neither from node nor client
- 'RequestFailed', # the request is already removed from node and client
- 'RequestFetchable',
- 'RequestModified',
- 'RequestProgress',
- 'RequestRestored',
- 'RequestStarted',
-
-
- # config related events
- 'ConfigData',
- 'NodeData',
-
-
- #Peer related events
- 'EndListPeers',
- 'Peer',
- 'PeerRemoved',
- 'UnknownNodeIdentifier',
- 'EndListPeerNotes',
- 'PeerNote',
-
-
- # plugins
- 'PluginInfo',
- 'PluginInfoFailed',
- 'PluginMessage'
- 'PluginMessagefailed',
-
- # others
- 'KeypairGenerated',
-
- 'USKUpdated',
-
- ###############################
-
- 'ProtocolError',
-
-
-
- )
-
-
-
def __init__(self,
connectionName=None,
debugVerbosity=None,
@@ -272,7 +224,7 @@
self._nodeHelloMessage = None
self._socket = None
- self.events = self.Events()
+ self.events = Events()
self.setDebugVerbosity(consts.DebugVerbosity.Warning if debugVerbosity is None else debugVerbosity)
atexit.register(self.close)
@@ -814,11 +766,12 @@
if initialRequest is None:
return False
+ initialRequest['FcStatus'] = consts.MessageStatus.Complete
# Fcp removes requests from queue with Persistence.Connection.. so do we
if initialRequest.params.get('Persistence', consts.Persistence.Connection) == consts.Persistence.Connection:
+ initialRequest['FcStatus'] |= consts.MessageStatus.Removed
del self._requests[requestIdentifier]
- initialRequest['FcStatus'] = consts.MessageStatus.Complete
initialRequest.data = msg.data
self.events.RequestCompleted(initialRequest)
return True
@@ -831,8 +784,7 @@
initialRequest['FcMetadataContentType'] = msg.get('Metadata.ContentType', '')
initialRequest['FcDataLength'] = msg.get('DataLength', '')
if initialRequest['FcSubType'] != consts.MessageSubType.GetData:
- initialRequest['FcStatus'] = consts.MessageStatus.Complete
-
+ initialRequest['FcStatus'] |= consts.MessageStatus.Removed
# Fcp removes requests from queue with Persistence.Connection.. so do we
if initialRequest.params.get('Persistence', consts.Persistence.Connection) == consts.Persistence.Connection:
del self._requests[requestIdentifier]
@@ -843,21 +795,24 @@
elif msg.name == consts.Message.GetFailed:
if initialRequest is None:
return False
-
+
+ initialRequest['FcStatus'] = consts.MessageStatus.Null
+
# Fcp removes requests from queue with Persistence.Connection.. so do we
if initialRequest.params.get('Persistence', consts.Persistence.Connection) == consts.Persistence.Connection:
+ initialRequest['FcStatus'] = consts.MessageStatus.Removed
del self._requests[requestIdentifier]
# check if it is one of our requests for key information
code = msg['Code']
if code == consts.FetchError.TooBig and initialRequest['FcSubType'] == consts.MessageSubType.GetKeyInfo:
- initialRequest['FcStatus'] = consts.MessageStatus.Complete
+ initialRequest['FcStatus'] |= consts.MessageStatus.Complete
initialRequest['FcMetadataContentType'] = msg.get('ExpectedMetadata.ContentType', '')
initialRequest['FcDataLength'] = msg.get('ExpectedDataLength', -1)
self.events.RequestCompleted(initialRequest)
else:
initialRequest['FcErrorMessage'] = msg
- initialRequest['FcStatus'] = consts.MessageStatus.Error
+ initialRequest['FcStatus'] |= consts.MessageStatus.Error
self.events.RequestFailed(initialRequest)
return True
@@ -1004,12 +959,14 @@
if initialRequest is None:
return False
+ initialRequest['FcStatus'] = consts.MessageStatus.Error
+
# Fcp removes requests from queue with Persistence.Connection.. so do we
if initialRequest.params.get('Persistence', consts.Persistence.Connection) == consts.Persistence.Connection:
+ initialRequest['FcStatus'] |= consts.MessageStatus.Removed
del self._requests[requestIdentifier]
initialRequest['FcErrorMessage'] = msg
- initialRequest['FcStatus'] = consts.MessageStatus.Error
self.events.RequestFailed(initialRequest)
return True
@@ -1031,6 +988,11 @@
# as long as no corrosponding params are passed in DataFound
# we ignore them
initialRequest['FcStatus'] = consts.MessageStatus.Complete
+
+ if initialRequest.params.get('Persistence', consts.Persistence.Connection) == consts.Persistence.Connection:
+ initialRequest['FcStatus'] |= consts.MessageStatus.Removed
+ del self._requests[requestIdentifier]
+
initialRequest['URI'] = msg['URI']
self.events.RequestCompleted(initialRequest)
return True
@@ -1062,7 +1024,7 @@
return True
elif msg.name == consts.Message.UnknownNodeIdentifier:
- self.events.UnknownNodeIdentifier(msg)
+ self.events.PeerUnknown(msg)
return True
####################################################
@@ -1315,10 +1277,10 @@
@return: (str) request identifier
- @param event: RequestCompleted(event, message) triggered when the request is complete
- @param event: RequestFailed(event, message) triggered when the request failes
- @param event: RequestStarted(event, message) triggered when as the request is started
- @param event: RequestModified(event, message) trigggered if the request identifier changes
+ @event: RequestCompleted(event, message) triggered when the request is complete
+ @event: RequestFailed(event, message) triggered when the request failes
+ @event: RequestStarted(event, message) triggered when as the request is started
+ @event: RequestModified(event, message) trigggered if the request identifier changes
or the request is modified otherwise (see L{modifyRequest})
@note: if persistence is L{consts.Persistence.Connection} the request is removed from the client
@@ -1384,10 +1346,10 @@
@return: (str) request identifier
- @param event: RequestCompleted(event, message) triggered when the request is complete
- @param event: RequestFailed(event, message) triggered when the request failes
- @param event: RequestStarted(event, message) triggered when as the request is started
- @param event: RequestModified(event, message) trigggered if the request identifier changes,
+ @event: RequestCompleted(event, message) triggered when the request is complete
+ @event: RequestFailed(event, message) triggered when the request failes
+ @event: RequestStarted(event, message) triggered when as the request is started
+ @event: RequestModified(event, message) trigggered if the request identifier changes,
filename changes or the request is modified otherwise (see L{modifyRequest})
@note: if persistence is L{consts.Persistence.Connection} the request is removed from the client
@@ -1444,10 +1406,10 @@
@return: (str) request identifier
- @param event: RequestCompleted(event, message) triggered when the request is complete
- @param event: RequestFailed(event, message) triggered when the request failes
- @param event: RequestStarted(event, message) triggered when as the request is started
- @param event: RequestModified(event, message) trigggered if the request identifier changes
+ @event: RequestCompleted(event, message) triggered when the request is complete
+ @event: RequestFailed(event, message) triggered when the request failes
+ @event: RequestStarted(event, message) triggered when as the request is started
+ @event: RequestModified(event, message) trigggered if the request identifier changes
or the request is modified otherwise (see L{modifyRequest})
@note: if persistence is L{consts.Persistence.Connection} the request is removed from the client
@@ -1726,7 +1688,7 @@
requestMessage['FcMessageSubType'],
time.time(), # TOSO: reset init time?
requestMessage['FcPersistentUserData'],
- requestMessage['FcFilenameCollision=filenameCollision'],
+ requestMessage['FcFilenameCollision'] & consts.FilenameCollision.MaskHandle,
)
elif requestMessage.name in consts.Message.ClientPluginMessages:
identifier = self.FcParam.newUuid(uuids=self._requests)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|