Thanks Matt, you've been very helpful to me!!

Matthew Toseland wrote:
> On Thursday 27 August 2009 23:42:00 Michael Yip wrote:
>   
>> Hi Matt,
>>
>> What about PersistentPut request with persistence = forever. If I remove 
>> the request, would the insert be removed as well?
>>     
>
> Each request or insert is separate, with its own Identifier. And there is no 
> way to remove content once it is out on the network.
>   
>> Thanks,
>>
>> Michael
>>
>> Matthew Toseland wrote:
>>     
>>> On Thursday 27 August 2009 22:35:57 Michael Yip wrote:
>>>   
>>>       
>>>> Hi Evan, Matt,
>>>>
>>>> Thanks for your replies.
>>>>
>>>> Ar, I didn't know it's a non-blocking protocol. That means if I send a 
>>>> PersistentPut or PersistentGet, I should continue reading from stream 
>>>> until I get the relevant end messages with the specific identifier.
>>>>
>>>> Matt has said that I should remove the Persistent requests once they are 
>>>> completed but that would remove the file I inserted/retrieved?  
>>>>     
>>>>         
>>> No. Well, if you download to disk, it won't delete the file. If you 
>>> download to temporary space, it will delete the data from temporary space.
>>>
>>>   
>>>       
>>>> I have  
>>>> to say this auto-listing of existing Persistent requests is pretty 
>>>> annoying. Why does it need to be on auto?
>>>>     
>>>>         
>>> To prevent careless client authors from leaking disk space!
>>>   
>>>       
>>>> Thanks,
>>>>
>>>> Michael
>>>>
>>>> Matthew Toseland wrote:
>>>>     
>>>>         
>>>>> On Thursday 27 August 2009 22:22:41 Evan Daniel wrote:
>>>>>   
>>>>>       
>>>>>           
>>>>>> On Thu, Aug 27, 2009 at 5:00 PM, Michael Yip<mhy831 at cs.bham.ac.uk> 
>>>>>> wrote:
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>>> Hi Matt,
>>>>>>>
>>>>>>> I know the ListPersistentRequests request and how it works. The problem
>>>>>>> lies in the interaction:
>>>>>>>
>>>>>>> 1. My client sends a ClientHello
>>>>>>> 2. Node replies with a NodeHello
>>>>>>> 3. Node sends a list of Persistent requests (PROBLEM! How do I determine
>>>>>>> when it would end?)
>>>>>>> 4. My client send desired requests and handle replies specific to the
>>>>>>> request.
>>>>>>>
>>>>>>> My problem is that the reader cannot terminate reading from stream at
>>>>>>> step 3 and so I can't do the things I want to do at step 4.
>>>>>>>
>>>>>>> Thanks for your help.
>>>>>>>
>>>>>>> Michael
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>> It does not need to terminate step 3 to start step 4.  If you want a
>>>>>> complete list, use the ListPersistentRequests command toad mentioned.
>>>>>> Aside from that, just handle every message received when it comes in,
>>>>>> and send messages when you're ready to send them.
>>>>>>
>>>>>> FCP is a non-blocking protocol.  There is no requirement to wait for a
>>>>>> response from one request before sending a new request.  There is no
>>>>>> guarantee that responses will arrive promptly or in order.  Your
>>>>>> client should not block completely while waiting for a response from
>>>>>> the node, though obviously individual actions have dependencies.
>>>>>> Obviously you don't have to write a multi-threaded client to handle
>>>>>> this, but it is probably the most natural fit to the protocol.  Any
>>>>>> messages unrelated to what your client is doing can generally be
>>>>>> ignored, and should be -- for example, new status messages have been
>>>>>> added since some client tools were written, and those tools continue
>>>>>> to work fine, they just ignore the new status messages because they
>>>>>> don't know what to do with them.
>>>>>>
>>>>>> Conceptually, a user tool to monitor the queue and download / upload
>>>>>> files would go something like this:
>>>>>> - set up connection (ClientHello, etc)
>>>>>> - Display the currently active downloads pane, initially empty
>>>>>> - Begin accepting user input to upload / download new files.
>>>>>>
>>>>>> Then, at any point, before, during, or after the user adds a new file
>>>>>> to download, if the node received a status message about a persistent
>>>>>> download, it would add it to the displayed list.  Similarly, if at any
>>>>>> point the user started a new download, the client would send that info
>>>>>> the node, regardless of the current state of the list or whether the
>>>>>> node was still telling it about things in it.
>>>>>>     
>>>>>>         
>>>>>>             
>>>>> Apart from what evanbd said, I should point out that you will only get 
>>>>> the persistent requests on connect if you started persistent requests, 
>>>>> they completed, and you didn't remove them. Normally you should remove 
>>>>> them when they complete.
>>>>>           
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>> _______________________________________________
>>>>> Devl mailing list
>>>>> Devl at freenetproject.org
>>>>> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl


Reply via email to