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