[saga-rg] More comments on Strawman API

Andre Merzky andre at merzky.net
Mon Feb 20 10:48:42 CST 2006


Should be fixed by now in CVS, for both files and streams.
Also, I made the buffer inout for reads, as they should be
allocated in application space before the read occurs.

Hope I did not miss any misplaced string...

Cheers, Andre.


Quoting [Graeme Pound] (Feb 20 2006):
> 
> Andre,
> 
> Thanks for the reply, you have been very busy.
> 
> The read/write flags in the latest version of the spec are what I required.
> 
> I agree that the read/write methods should handle byte arrays, rather 
> than strings. Could you please change the SIDL description of the 
> read()/write() methods? At present the 'buffer' argument is type 
> 'string'. This caused me some confusion when I first read the 
> specification.
> 
> Thanks,
>   Graeme
> 
> 
> 
> Andre Merzky wrote:
> >Hi Graeme, 
> >
> >working on the email-backlog - sorry for the delay - I can
> >imagine that those points are rather important for the
> >implementation...
> >
> >
> >Quoting [Graeme Pound] (Feb 16 2006):
> >>######### Specific comments on the API
> >>
> >> -3.23 SAGA.File.openFlags should specify read/write modes
> >
> >They do by now.  Could you please check if that is what you
> >had in mind?
> >
> >
> >> -3.24 At what point should files be truncated, and to what length?
> >
> >The Truncate flag to open would imply that the file is
> >truncated to length zero, as with POSIX open.  The file
> >pointer is then positioned at the begin of the file.
> >
> >
> >> -3.25 Do the operations of SAGA.File.File deal with byte or character 
> >>arrays? The semantics of this in the API are inconsistent, arguments are 
> >>described of type 'string', but the documentation discusses bytes. See 
> >>comment 3.26.
> >
> >This should be bytes - strings would, as you say, imply an
> >encoding, which complicates things.  There are several
> >places where strings are useful (file names, urls etc) -
> >in read/write they are not.
> >
> >
> >> -3.26 The SAGA.File read() and write() methods specify arguments of 
> >>type 'string' as the output/input parameter. However there is no way for 
> >>the user to specify the character encoding of the file. Because of the 
> >>unknown provenance of files located on the Grid the default character 
> >>encoding for the local machine may be incorrect.
> >
> >See above - should be a byte array
> >
> >
> >>Is it the intention for these methods to deal with strings/character 
> >>arrays, or at the level of byte encodings?  If SAGA.File read() methods 
> >>return strings the user must be able to specify the character encoding 
> >>for the file, if they return byte arrays this is not a problem. The 
> >>character encoding could be specified as a property of the File class.
> >>
> >> -3.27 Should SAGA.File.File inherit the interface SAGA.NameSpace.NSEntry?
> >
> >Yes, this was recently fixed.
> >
> > 
> >> -3.28 SAGA.NameSpace.NSDir.removeFlags.Recursive: This must be set to 
> >>delete a directory, but how can a user delete a directory without 
> >>deleting non-empty directories?
> >
> >Hmm, very good point - I guess we should handle that as on
> >command line: setting recursive deletes non-empty
> >directories, not setting the flag deletes empty directories
> >only.  Same goes then for copy I think, for consistency.
> >
> >
> >> -3.29 Many of the exceptions described in the specification document 
> >>are fairly generic, for example the ubiquitous "NoSuccess". Will 
> >>attempts be made to further characterise error conditions that may be 
> >>expected to be common to many Grid platforms, such as 
> >>"AuthenticationFailure" and "AuthorisationFailure". I understand the 
> >>need to avoid an overload of throwable exceptions within the API, 
> >>however these exceptions would be expected in a fairly well defined 
> >>subset of the methods.
> >
> >See separate mail.
> >
> >
> >> -3.30 Details of NSDir.find()
> >>        "the find operates recursively below the current working 
> >>directory, unless the NoRecursive flag is specified"
> >>       NoRecursive is not defined in the findFlags enumeration (instead 
> >>Recursive is defined & default)
> >
> >That should read then:
> >
> >  "the find operates recursively below the current working
> >  directory if the Recursiveflag is defined (default)."
> >
> >I will fix that.
> >
> >Thanks for the remarks! :-)
> >
> >Andre.
> >
> >
> >



-- 
"So much time, so little to do..."  -- Garfield





More information about the saga-rg mailing list