I, for one, do not think this is a good idea.  You are using a
starting point of the operating system, which is a mistake in my
opinion.  The better starting point should be from the standpoint of
the function you wish to provide, define the operations that class
should provide and implement it in a way that the ooRexx programmer
doesn't see a difference.  For those types of classes, you should
never need to code your program to to select for the operating system
(e.g., use one ::requires on windows, a different one for Linux, yet
another for the Mac).  The class implementation should hide all of
that.  The underlying implementation might have a source code layout
that mimics your hierarchy below, but the ooRexx programmer should
never see that.  These classes might be delivered as builtin items
(such as the new .File class), or provided as separately loaded pieces
(e.g., as rxsock is).

That said, there are definitely categories of things that are
inherently OS-specific.  ooDialog, OLEObject and the windows registry
are 3 excellent examples of that.  Those subsystems should be clearly
segregated from the portable classes and only available by declaring
the appropriate dependencies.

Rick

On Fri, May 7, 2010 at 11:08 AM, David Ashley
<david.ashley....@gmail.com> wrote:
>                  ooRexx Operating System Analog Classes
>
>
> The basic premise for these classes is to provide a standardized class
> hierarchy to the
> operating system environment from generic behaviour to platform specific
> behaviour.
> The will allow for the logical extension of the class hierarchy in the
> future. Hopefully
> this will be a good design that will not have to be modified in the
> future and thus
> will not impact user programs when it is modified or further extended.
>
> As an example of how the class hierarchy will be constructed we will
> create a fictitious
> class that is extended from generic to specific behaviour.
>
>                                base
>                                 |
>                            +----+-----+
>                            |          |
>                         nixbase    winbase
>                            |
>                 +----------+----------+
>                 |          |          |
>              macbase   linuxbase   aixbase
>
> Additional levels could be added. For instance, if there was a
> difference in Windows XP
> and Windows 7 then a new level could be added in order to subclass the
> winbase class
> in order to encapsulate that specific behaviour. I really see this as a
> possibility for
> the linuxbase class so that differences between distributions or
> differences between
> GTK and KDE could be expressed.
>
> Next, we need to come up with the list of basic operating system classes
> which will
> be extended as shown in the example above. In some cases we may need
> multiple levels
> prior to the nixbase/winbase level, but we can work that out later. Here
> is a partial
> list of the basic classes as I see them.
>
> Memory
> Semaphores
> Processes/threads
> File System
> File
> Printing
> Network
> Date/time
> Users/groups
>
> I am sure there will be others, and probably new levels, added to the
> list above.
> But this should give us a good start to flesh out the details.
>
> Please let me know if you think this is a good idea or not. I strongly
> believe that
> a class hierarchy like this will be the key to the future success of
> ooRexx. If we
> can give equal support to all of our supported platforms and can easily
> extend this
> hierarchy to support other platforms in the future, then our success will be
> guaranteed.
>
> David Ashley
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Oorexx-devel mailing list
> Oorexx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
>

------------------------------------------------------------------------------

_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to