[saga-rg] 1.4 version of the spec [part2]
Graeme Pound
G.E.POUND at soton.ac.uk
Fri Feb 24 05:48:20 CST 2006
Andre,
Your reply did not go to the mailing list.
Graeme
Andre Merzky wrote:
> Quoting [Graeme Pound] (Feb 24 2006):
>> Andre,
>>
>> Further comments on revision 0.4 (not all negative ;-)
>
> Phew! :-)
>
>
>> Thanks
>> Graeme
>>
>>
>> #1 submitJob() has been renamed create_job(), however there is still
>> no endpoint defined for this method - this is broken
>
> Right, fixed in CVS now.
>
>
>> #2 submitJob()/create_job(). The described behaviour of this method
>> has not changed; is this merely a superficial change, or is it intended
>> to facilitate the separation of Job creation and submission at a later date?
>
> It is! job.run (); triggers the submission.
>
> The job part is missing a number of description and semantic
> notes. Also, it is missing exceptions completely - its on
> the TODO list *sigh*
>
OK, I missed the Job.run() method.
>
>> #3 Regarding the position upon getter/setter methods.
>>
>> "Many SAGA objects have very frequently use attributes. To
>> simplify usage of these objects, setter and getter methods MAY
>> be defined by the various language bindings, additionally to
>> the interface described below"
>>
>> I appreciate this statement. I have been pondering this issue and
>> believe that getter and setter methods are appropriate for the Java
>> bindings. In addition to the issue of typesafety they allow the
>> semantics defined by these attributes to be versioned much more
>> explicitly. When the SAGA API changes (infrequently ;-) a client using
>> an unsupported attribute via the getter/setter will receive a compile
>> time error, otherwise the attribute will be hardcoded as a string and
>> produce a runtime error. This is less of an issue for dynamic languages
>> such as Python.
>
> Agree.
>
>
>> #4 Should the close() method be defined as a method of ns_entry? As I
>> mentioned in an earlier email it is not applicable to Directorys (which
>> implement ns_entry), and perhaps not to logical_files or
>> logical_directory. I believe that close() should be defined for classes
>> as required.
>
> As said before, I am not sure about this. Close was
> requested as means of freeing the resource explicitely (i.e.
> timely) on systems with garbage collection (Java ;-). Maybe
> 'destroy' would have been more appropriate, but that again
> would clash on real files and streams, as 'close' is 'the
> right thing' on those.
>
> I don't have a better idea right now. Out? In? *shrug*
>
>
>> -3.33 The uniqueness of Context within a Session is a little
>> ambiguous. Defined as "a single Context instance can get attached only
>> once to a specific Session instance". Whilst it would be possible to
>> determine whether the same instance of a Context object has been added
>> to a session, two different Context instances could describe the same
>> security information. What is the intention of this restriction? Is
>> there a better way to specify the uniqueness of Context objects; perhaps
>> based upon contextType? (see 3.34)
>
> I pondered about that as well some days ago. I don't see a
> good reason for that statement anymore. It simply should
> not matter if a context gets added twice.
>
> The only potential problem is confusion with remove_context,
> as that should certainly remove only one instance - so a
> double context would be still attached on the session after
> a single remove call. I don't think that this is a problem
> though.
>
> I would prefer to delete the statement, if there ar no
> objections...
>
>
>> -3.34 Session.removeContext(Context context) is a little awkward. The
>> client would have to retrieve the instance Context in order to specify
>> that it should be removed (see 3.33). Could Context instances within a
>> Session have labels, removal could then be based upon label?
>
> We do have cookies for callbacks, so we could also have them
> for contexts, sure. But then also for tasks (in
> task_container)?
>
> I guess its a matter of taste - I can imagine use cases for
> both versions. But one version is easily mapped to the
> other on in application space.
>
>
>> ######### Comments on the Strawman API document
>>
>> -4.18 Not all methods are documented in revision 0.4, including;
>> File.read_p()
>> File.write_p()
>> File.read_e()
>> File.write_e()
>> File.modes_e()
>
> Right, thats on the issue list.
>
>
>> -4.19 Buffer arguments should be described as byte arrays, not strings
>> in File and Ivec.
>
> Oh, did I miss that? I though I fixed all the buffer
> strings... - will check.
>
> Hmm:
>
> struct ivec
> {
> long offeset; // position of data to be r/w
> long length; // number of bytes to be r/w
> array<byte,1> buffer; // data to be r/w
> long result; // number of bytes r/w
> }
>
> Hmm, is byte array in CVS. I am wondering if we look at the
> version?
>
Sorry that is an anachronistic comment from revision 0.3 that slipped in.
>
>> -4.21 Typo in ivec "offeset" should read "offset"
>
> Aehm, thanks :-)
>
>
>> -4.22 removeContext "Security Context to add" should read "Security
>> Context to remove"
>
> Fixed.
>
>
>> -4.23 removeContext "DoesNotExists" should read "DoesNotExist"
>
> fixed.
>
> Thanks, Andre.
>
>
>> Andre Merzky wrote:
>>> Hi all,
>>>
>>> the lates version of the strawman (1.4) is on the wiki.
>>>
>>> Cheers, Andre.
>>>
>>>
>
>
>
More information about the saga-rg
mailing list