SF.net SVN: fclient: [188] trunk/sandbox/fcp/fcp2_0_client.py
Status: Pre-Alpha
Brought to you by:
jurner
From: <ju...@us...> - 2008-02-08 18:53:05
|
Revision: 188 http://fclient.svn.sourceforge.net/fclient/?rev=188&view=rev Author: jurner Date: 2008-02-08 10:53:10 -0800 (Fri, 08 Feb 2008) Log Message: ----------- more twiddling with request status flags ++ GenerateKeypair is now registered as request 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-08 13:45:43 UTC (rev 187) +++ trunk/sandbox/fcp/fcp2_0_client.py 2008-02-08 18:53:10 UTC (rev 188) @@ -348,7 +348,7 @@ 'FcPersistentUserData': persistentUserData, # any user defined persistent data # non persistent params - 'FcRequestStatus': consts.RequestStatus.Pending, + 'FcRequestStatus': consts.RequestStatus.Null, 'FcErrorMessage': None, # error message in case an error occured 'FcUserData': userData, # any user defined runtime data here @@ -381,7 +381,7 @@ elif requestType & consts.RequestType.MaskGenerateKeypair: msg.params.update({ 'FcRequestType': requestType, # identifies sub message types - 'FcRequestStatus': consts.RequestStatus.Pending, + 'FcRequestStatus': consts.RequestStatus.Null, 'FcInitTime': initTime, # when was the request started? 'FcModified': {}, @@ -392,12 +392,12 @@ else: msg.params.update({ 'FcRequestType': requestType, # identifies sub message types - 'FcRequestStatus': consts.RequestStatus.Pending, + 'FcRequestStatus': consts.RequestStatus.Null, 'FcInitTime': initTime, # when was the request started? 'FcModified': {}, }) - msg['FcRequestStatus'] |= consts.RequestStatus.Pending + msg['FcRequestStatus'] |= consts.RequestStatus.Null msg['Identifier'] = identifier self._requests[identifier] = msg @@ -916,7 +916,7 @@ #FIX: [0001965: Persistence vs PersistenceType] if 'PersistenceType' in initialRequest.params: initialRequest['Persistence'] = initialRequest.params.pop('PersistenceType') - initialRequest['FcRequestStatus'] = consts.RequestStatus.Null + initialRequest['FcRequestStatus'] |= consts.RequestStatus.Restored self.events.RequestRestored(initialRequest) return True @@ -1015,7 +1015,7 @@ #FIX: remove Started param from PersistentGet / Put del initialRequest.params['Started'] - initialRequest['FcRequestStatus'] = consts.RequestStatus.Null + initialRequest['FcRequestStatus'] |= consts.RequestStatus.Restored self.events.RequestRestored(initialRequest) return True @@ -1160,7 +1160,6 @@ elif msg.name == consts.Message.SubscribedUSKUpdate: if initialRequest is None: return False - self.events.USKUpdated(msg) return True @@ -1550,26 +1549,24 @@ #TODO: persists until connection is closed... can this request be removed? - # Anyway. It is not listed in consts.Message.ClientKeyRequestMessages, - # so any attempts will fail (wink) def subscribeUSK(self, uri, dontPoll=True): """Asks the node to notify the client when an USK is updated @param uri: uri of the USK to subscribe to @param dontPoll: if True, whatever ??? @return: (str) identifer of the request + + @note: this request can not be removed or modified and the {consts.RequestStatus.Completed} + flag is always set """ - identifier = self.FcParams.newUuid(uuids=self._requests) - self.sendMessage( + msg = self.Message( consts.Message.SubscribeUSK, - FcModified={}, - FcRequestStatus=consts.RequestStatus.Pending, #TODO: status? - FcRequestType=consts.RequestType.SubscribeUSK, - - Identifier=identifier, URI=uri, DontPoll=dontPoll, ) - return identifier + self._registerRequest(msg, consts.RequestType.SubscribeUSK) + msg['FcRequestStatus'] |= consts.RequestStatus.Completed + self.sendMessageEx(msg) + return msg['Identifier'] ######################################################## ## @@ -1831,12 +1828,12 @@ @param persistentUserData: (str) persistent user data or None @param priorityClass: (L{consts.Priority}) new priority or None - @note: you can use this method to modify requests as listed in L{consts.Message.ClientKeyRequestMessages}. + @note: you can use this method to modify get / put related requests All attempts to modify other requests will fail @note: a RequestModified event is triggered as soon as the request has actually been modified """ initialRequest = self._requests[requestIdentifier] - if initialRequest.name not in consts.Message.ClientKeyRequestMessages: + if not initialRequest['FcRequestType'] & (consts.RequestType.MaskGet | consts.RequestType.MaskPut): raise ValueError('Can not modify request: %s' % initialRequest.name) msg = self.Message( @@ -1857,14 +1854,11 @@ """Removes a request @param requestIdentifier: (str) identifier of the request to remove - @note: you can use this method to remove requests as listed in L{consts.Message.ClientKeyRequestMessages} - or L{consts.Message.ClientPluginMessages}. All attempts to remove other requests will fail - @note: if the request is one the requests listed in L{consts.Message.ClientKeyRequestMessages} - a RequestRemoved event is triggered as soon as the request has actually been removed + @note: you can use this method to remove get / put requests . All attempts to remove other requests will fail """ initialRequest = self._requests[requestIdentifier] initialRequest['FcRequestStatus'] |= consts.RequestStatus.Removed - if initialRequest.name in consts.Message.ClientKeyRequestMessages: + if initialRequest['FcRequestType'] & (consts.RequestType.MaskGet | consts.RequestType.MaskPut): self.sendMessage( consts.Message.RemovePersistentRequest, Global=False, @@ -1882,8 +1876,8 @@ @param requestMessage: (L{fcp2_0_message.Message}) @return: (str) request identifier - @note: you can use this method to resend requests as listed in L{consts.Message.ClientKeyRequestMessages} - or L{consts.Message.ClientPluginMessages}. All attempts to resend other requests will fail + @note: you can use this method to resend get / put request, genarate keypair requests or + plugin messages. All attempts to resend other requests will fail @note: the request passed is not removed in the call. Use L{removeRequest} if necessary """ requestType = requestMessage.get('FcRequestType', None) @@ -2081,11 +2075,10 @@ raise ValueError('keypairType must be %s or %s' % (consts.KeyType.SSK, consts.KeyType.USK)) requestType = consts.RequestType.GenerateSSKKeypair if keypairType == consts.KeyType.SSK else consts.RequestType.GenerateUSKKeypair - identifier = self.FcParams.newUuid(uuids=self._requests) msg = self.Message(consts.Message.GenerateSSK) self._registerRequest(msg, requestType) self.sendMessageEx(msg) - return identifier + return msg['Identifier'] #***************************************************************************** @@ -2364,4 +2357,16 @@ for i in xrange(30): c.next() - #testListPeers() \ No newline at end of file + #testListPeers() + + + def testSubscribeUSK(): + myIdentifier = c.subscribeUSK('USK@zQyF2O1o8B4y40w7Twz8y2I9haW3d2DTlxjTHPu7zc8,h2mhQNNE9aQvF~2yKAmKV1uorr7141-QOroBf5hrlbw,AQACAAE/AnotherIndex/0/') + for i in xrange(10): + c.next() + + for i in xrange(10): + c.next() + + + #testSubscribeUSK() \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |