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. |