The exercise of writing test cases for the various APIs was an
interesting process, as it gave me the opportunity to reassess whether
APIs belonged in the set and also pointed out some holes where
additional APIs should be provided.

In the process of doing this, I started to question whether the Table
set of APIs even belong on the list.  The initial list of APIs was
created be drawing upon the old (non-documented) internal object API
augmented by my best guess on what additional operations might be
needed.  As things progressed, I've eliminated a few of the old API
holdovers because they didn't really provide any added value or
overlapped with other means of doing the same things.  NewObject() and
NewInteger() are two examples.

One rule of thumb I've started applying to the APIs is to recognize
that most of the operations in the APIs can be accomplished using the
generic SendMessage() API call.  However, the API versions make it
easier (and more efficient) for the C programmer.  for example,
ArrayAt() allows a size_t value to be specified for the array index
rather than require the size be converted to a Rexx object first,
which would be the case if you had to use SendMessage().

If you apply that rule of thumb to the table APIs (TablePut(),
TableAt(), TableRemove(), NewTable(), and IsTable()), the only one of
these that doesn't map directly into a SendMessage() call is
IsTable(), and that one is only required because we have the other
set.  I'm proposing that these APIs and the associated RexxTableObject
type be removed from the API set because there's no real added value
to having these APIs.

Rick

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to