These classes provide thin veneers over the `base' bits of the operating system.
JLib provides a set of stream classes for dealing with files, named pipes, and IO in general. Here's a picture of the File side of things:
JStream, JRStream, and JWStream are defined in <JStream.hpp>, and provide writing & reading to streams.
File-specific behaviour is introduced in JFile, defined in <JBFile.hpp>, and the actual classes you can use are defined in <JFile.hpp>.
And on the named-pipe side:
JNamedPipe, JPipeServer, and JPipeClient are defined in <JBNPipe.hpp>; this provides pipeyness. Usable classes are defined in <JNPipes.hpp>.
JThread and friends - <JThread.hpp>
Start new threads. There's gubbins here to start arbitrary (ish) methods as new threads, as well as the standard `derive a class & overload a method'. Thread-ending notification via asynchronous events.
JEventSem - <JEvsem.hpp>
OS/2 event semaphores, sort of condition variables. For thread synchronization.
JMutexSem - <JMutex.hpp>
OS/2 mutex semaphores. For thread synchronization again.
JSharedMem - <JShared.hpp>
Shared memory.
JFind - <JFind.hpp>
Provides an interface to the DosFind* functions for searching for files.
JModule - <JModule.hpp>
DLLs, usually used for resource dlls.
JMsgFile - <JMsgFile.hpp>
Load messages from a message file (made using mkmsgf) at runtime.
JThreadInfo - <JThreadI.hpp>
Get information about the current thread, eg. the thread id.
JPipe - <JPipe.hpp>
Provides an unnamed duplex pipe.