On Monday 10 March 2008 23:48, juergen urner wrote:
> Matthew Toseland schrieb:
> > On Sunday 09 March 2008 15:25, juergen urner wrote:
> >   
> >> There is no distinction between ClientPutDiskDir and ClientPutComplexDir
> >> in PersistentPut*. This makes it hard to tell both apart. I need this to 
> >> do automatic
> >> type conversions.
> >>     
> >
> > We can make a distinction if we need to, however there really isn't much 
> > difference, ClientPutDiskDir is just a simple way to access the same 
> > functionality, any ClientPutDiskDir can be expressed as a 
ClientPutComplexDir 
> > if need be.
> 
> Yes, I noticed that. And I noticed that 'Filename' is not present in 
> PeristentPutDir
> when I pass ClientPutComplexDir. just a bit of ugly parsing to find out 
> 'Filename'
> I'd like to avoid. So, at least passing 'Filename' as indicator would be 
> helpful.

It's present for each file, but there is no overall Filename because a 
ClientPutComplexDir can put files from anywhere.
> 
> >> Just thinking aloud ..I wish ClientPut* (PersistentPut*) would go. 
> >> Afaics a new message
> >> would make live much easier on both sides. Any thoughts?
> >>
> >> Put
> >>     Identifer=any
> >>     NItems=N
> >>     Persistence=whatever
> >>     (...)
> >> EndMessage
> >>
> >> ...emidiately followed by N items to put
> >>
> >> DataItem
> >>     DataLength=N
> >>     Name=any
> >>     (...)
> >> EndMessage
> >> FileItem
> >>     Filename=filename
> >>     Name=any
> >>      (...)
> >> EndMessage
> >> (...)
> >>     
> >
> > Why is this better?
> 
> Put* is somewhat overcomplicated. I am already scared of future 
> extensions to it.

The example given on the wiki has only the minimum info needed for each file:
-----
ClientPutComplexDir
Identifier=My Identifier
Verbosity=1023
MaxRetries=999
PriorityClass=2
URI=SSK at Fk6sQ6...../myinsert-4/
GetCHKOnly=false
DontCompress=true
ClientToken=My Client Token
Persistence=reboot
Global=true
DefaultName=hello.txt
Files.0.Name=hello.txt
Files.0.UploadFrom=direct
Files.0.Metadata.ContentType=text/plain
Files.0.DataLength=59
Files.1.Name=something.pdf
Files.1.UploadFrom=disk
Files.1.Filename=something.pdf
Files.2.Name=gpl.txt
Files.2.UploadFrom=redirect
Files.2.TargetURI=KSK at sample.txt
EndMessage
hello, this is the contents
of the file called "hello.txt"
-----
> 
> As I see it, all that is needed is is to break the container into its 
> peaces to
> make a nice and clean api for both sides on only one message and one page
> in the wiki.

AFAICS the only difficult thing about the above is that you have to prefix 
each file with <Files.n.>, rather than sending them as separate messages... 
what's the big deal?
> 
> >> Btw, on input Fcp does not seem to care if Files.N.* in 
ClientPutComplexDir
> >> start at 0. This broke persistents.
> >
> > You mean it expects it to start at 0? Or what?
> 
> Yes something breaks. Too lazy to run more tests, but NodeHello does
> not arrive anymore.

Look for a NullPointerException in the logs.
> 
> Btw, I ran a test throwing 'Plum' as message terminator at the node.
> 
>  >>> If '=' not in chunk:
>  >>>    endOfMessageEncountered()
> 
> Fcp doesn' t care at all?

Indeed.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: 
<https://emu.freenetproject.org/pipermail/tech/attachments/20080311/e0da1e2d/attachment.pgp>

Reply via email to