[comp.lang.c++] Where is NIHlib?

beck@hermod.cs.cornell.edu (Micah Beck) (12/05/89)

In article <4280@pegasus.ATT.COM> psrc@pegasus.ATT.COM (Paul S. R. Chisholm) writes:
>In article <34623@cornell.UUCP>, beck@hermod.cs.cornell.edu (Micah Beck) writes:
> ...
>> I would like to use the Oops library of objects, but it is labeled
>> as written for C++.
>
>Yup.  You'll need some implementation of the C++ language.  (It's
>called the NIHlib nowadays, which I think is a nice pun.  It was
>developed at the National Institutes for Health, and it helps fight the
>dreaded "Not Invented Here" syndrome.)

Then I assume that the version I have, which calls itself Oops, not NIHlib,
is not the latest and greatest version.  Where can I get the latest and
greatest version of NIHlib?

Micah Beck
Cornell CS

keith@suntory.dcrt.nih.gov (keith gorlen) (12/06/89)

Revision 2.204 of the NIH Class Library (formerly known as OOPS) is
available via anonymous FTP in the file pub/nihcl-2.204.tar.Z on
alw.nih.gov (128.231.128.251).  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!keith
	National Institutes of Health	Internet: keith@alw.nih.gov
	Bethesda, MD 20892