home *** CD-ROM | disk | FTP | other *** search
-
- GCOOPE Version 1.0 BASIC Class library
-
- by Brian Lee Price
-
- Released as Public Domain July, 1994.
-
-
- The class library in the initial Version 1.0 release:
-
- Char
- ShortInt
- Unsigned
- LongInt
- Pointer
- Dynmem
- Collection
- Array
- LowStream
- String
- StdStream
- Stream
- File
-
-
- The classes Char, ShortInt, and Unsigned are flag classes,
- normally requiring no instance memory unless inherited. The
- other base classes (no ancestors or special functionality) are
- LongInt, and Pointer.
-
- Collection is actually more of a pseudo-class, it is an
- example of a 'wrapper' class that provides an object oriented
- interface to standard 'C' library type functions. (In this
- case the functions are defined in the kernel module listmgr.c).
- It does not inherit any classes.
-
- LowStream is an example of an expansion class. While it
- does not inherit any classes, any class inheriting LowStream
- must also have Dynmem as an ancestor. LowStream adds low
- level stream i/o capability to any Dynmem based class.
-
- StdStream is another example of a 'wrapper' class, it
- provides an object oriented interface to the standard ANSI-C
- stream i/o library functions. It shares the same interface
- specification as the Stream class.
-
- Stream is a special class, it provides high level stream
- i/o to any user defined class that has low level stream i/o
- using the same interface as LowStream. It does not necessarily
- need to be inherited in order to provide this functionality but
- in most cases it will prove simpler to inherit it.
-
- Dynmem is a low level example of multiple inheritance,
- while it could be implemented (and probably be more efficient)
- as a base class, it is very simple to define it in terms of
- an Unsigned and Pointer child. Note the redefinition of
- valueOf for both inherited classes by means of renaming them
- to sizeOf and addressOf.
-
- Array class is a child of Dynmem and provides basic
- dynamic array class functionality. The provided methods
- can work with items of various sizes but any one array sub-
- class must use items of the same size.
-
- The String class is an especially potent mixture of
- previously defined classes. It combines an Array with
- LowStream providing a construct which can be the target
- of stream i/o operations, be addressed as an array of
- characters, or be accessed as a string. However, it should
- be noted that string access is NOT to a null terminated
- string. The length of the string must be obtained through
- the lengthOf generic.
-
- The last class defined in the initial release class
- library is the File class. This class inherits the
- StdStream class and provides automatic file closing for
- temporary files.
-
-
- The provided classes are not meant to be a complete
- set of basic class types, nor are they optimized in any
- way. However, they do serve to illustrate many of the
- possible operations that can be performed with the GCOOPE
- framework. Frankly, I'm still experimenting with the
- capabilities of the system. As I develop higher level
- constructs, I intend to let the need for a fuller and
- richer set of base classes and generic methods make itself
- apparent rather than blindly developing classes and methods
- that may end up being unneccessary.
-
-
-
-
-
-