[comp.lang.c++] comments on the NIH classes

gbaciu@watcgl.waterloo.edu (George Baciu [CGL]) (02/15/90)

I am interested in knowing how other people may have found the NIH
classes in their projects. Things of general interest would be:

	- usefulness vs in-house developed (semi) general object classes
	- performance
	- portability
	- ease of modifying/expanding the classes.
	- limitations
	- documentation

And, does anyone know if version 3.0 is available?

Thanks in advance,

        -- George Baciu -------------------------------------------------
        |  GBaciu@watcgl.Waterloo.edu        GBaciu@watcgl.UWaterloo.CA  |
        |  University of Waterloo - Waterloo, Ontario, Canada - N2L 3B5  |
        ------------------------------------------------------------------

jhc@iris.brown.edu (James H. Coombs) (02/15/90)

In article <13379@watcgl.waterloo.edu> gbaciu@watcgl.waterloo.edu (George 
Baciu [CGL]) writes:
> I am interested in knowing how other people may have found the NIH
> classes in their projects.

Where can I get the NIH library?

--Jim

Dr. James H. Coombs
Senior Software Engineer, Research
Institute for Research in Information and Scholarship
Box 1952, Brown University, Providence, RI 02912

perez@csc.ti.com (Edward Perez) (02/16/90)

>James H. Coombs writes:
>>George Baciu writes:
>> I am interested in knowing how other people may have found the NIH
>> classes in their projects.
>
>Where can I get the NIH library?

where can i get an overview/brochure on the NIH library?  list of classes,
capabilities, etc.

---------------------------------------------------------------------
edward roland perez          internet: perez@csc.ti.com             #
computer science center         csnet: perez%ti-csl@relay.cs.net    #
texas instruments, dallas       phone: 214-995-0698(w)              #
---------------------------------------------------------------------

kgorlen@nih-csl.UUCP (Keith Gorlen) (02/17/90)

In article <PEREZ.90Feb15171257@pottawatomie.csc.ti.com>, perez@csc.ti.com (Edward Perez) writes:
> >James H. Coombs writes:
> >>George Baciu writes:
> >> I am interested in knowing how other people may have found the NIH
> >> classes in their projects.
> >
> >Where can I get the NIH library?
> 
> where can i get an overview/brochure on the NIH library?  list of classes,
> capabilities, etc.
> 

Revision 2.204 of the NIH Class Library (formerly known as OOPS) is
available via anonymous FTP in the file pub/nihcl.tar.Z on alw.nih.gov
(128.231.128.251).  It is also available from UUNET in the file
gnu/nihcl-2.204a.tar.Z.  This is a pre-release of Revision 3.0, which
will be the version of the library described by our forthcoming book
"Data Abstraction and Object-Oriented Programming in C++" by Keith
Gorlen, Sandy Orlow, and Perry Plexico (ISBN 0471 92346 X), currently
scheduled for publication in June, 1990 by John Wiley and Sons.

The 2.204 pre-release distribution includes the NIH Class Library, its
test suite, all the example programs described in the book, release
notes, and an installation guide.  The software requires AT&T C++
R2.00 or other R2.0 -compatible compiler.

Revision 2.204 fixes some minor bugs in 2.203, adds support for
copying objects that contain instances of virtual base classes, and
updates the example programs to correspond to those sent to the
publisher.

The highlights of this release include:

o  Classes re-written to take full advantage of C++ R2.0 features

o  Optional support for Multiple Inheritance

o  Corrected and more flexible Object I/O facility

o  Improved, more portable implementation of lightweight process classes

o  Bug fixes


Here's a list of the classes in Revision 2.204:

NIHCL---Library Static Member Variables and Functions
    Object---Root of the NIH Class Library Inheritance Tree
        Bitset---Set of Small  Integers  (like  Pascal's  type SET)
        Class---Class Descriptor
        Collection---Abstract Class for Collections
            Arraychar---Byte Array
            ArrayOb---Array of Object Pointers
            Bag---Unordered Collection of Objects
            Set---Unordered Collection of Non-Duplicate Objects
                Dictionary---Set of Associations
                    IdentDict---Dictionary Keyed by Object Address
                IdentSet---Set Keyed by Object Address
            SeqCltn---Abstract Class for Ordered, Indexed Collections
                Heap---Min-Max Heap of Object Pointers
                LinkedList---Singly-Linked List
                OrderedCltn---Ordered  Collection of Object Pointers
                    SortedCltn---Sorted Collection
                        KeySortCltn---Keyed Sorted Collection
                Stack---Stack of Object Pointers
        Date---Gregorian Calendar Date
        FDSet---Set of File Descriptors for Use with select(2) System Call
        Float---Floating Point Number
        Fraction---Rational Arithmetic
        Link---Abstract Class for LinkedList Links
            LinkOb---Link Containing Object Pointer
            Process---Co-routine Process Object
                HeapProc---Process with Stack in Free Store
                StackProc---Process with Stack on main() Stack
        LookupKey---Abstract Class for Dictionary Associations
            Assoc---Association of Object Pointers
            AssocInt---Association of Object Pointer with Integer
        Integer---Integer Number Object
        Iterator---Collection Iterator
        Nil---The Nil Object
        Point---X-Y Coordinate Pair
        Random---Random Number Generator
        Range---Range of Integers
        Rectangle---Rectangle Object
        Scheduler---Co-routine Process Scheduler
        Semaphore---Process Synchronization
        SharedQueue---Shared Queue of Objects
        String---Character String
            Regex---Regular Expression
        Time---Time of Day
        Vector---Abstract Class for Vectors
            BitVec---Bit Vector
            ByteVec---Byte Vector
            ShortVec---Short Integer Vector
            IntVec---Integer Vector
            LongVec---Long Integer Vector
            FloatVec---Floating Point Vector
            DoubleVec---Double-Precision Floating Point Vector
    OIOifd---File Descriptor Object I/O readFrom() Formatting
    OIOin---Abstract Class for Object I/O readFrom() Formatting
        OIOistream---Abstract Class for Stream Object I/O readFrom() Formatting
            OIOnihin---Stream Object I/O readFrom() Formatting
    OIOofd---File Descriptor Object I/O storeOn() Formatting
    OIOout---Abstract Class for Object I/O storeOn() Formatting
        OIOostream---Abstract Class for Stream Object I/O storeOn() Formatting
            OIOnihout---Stream Object I/O storeOn() Formatting
    ReadFromTbl---Tables used by Object I/O readFrom()
    StoreOnTbl---Tables used by Object I/O storeOn()

-- 
	Keith Gorlen			phone: (301) 496-1111
	Building 12A, Room 2033		uucp: uunet!nih-csl!kgorlen
	National Institutes of Health	Internet: kgorlen@alw.nih.gov
	Bethesda, MD 20892