🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.lang.objective-c
1 messages
1 total messages Started by Tiggr Mon, 20 Dec 1993 16:26
comp.lang.objective-c FAQ, part 2/3: ClassWare Listing
#356
Author: Tiggr
Date: Mon, 20 Dec 1993 16:26
579 lines
23364 bytes
Archive-name: Objective-C/classes
Version: $Id: classes,v 2.3 1993/12/01 07:37:49 tiggr Exp $



				Objective-C

			     ClassWare Listing



This is the second of three FAQ postings for comp.lang.objective-c.  This
posting lists available kits and classes, to aid the reader in answering the
question `to re-use or to re-invent?'.  In order to keep this list up to date
and as interesting and diverse as possible, send your additions, deletions
and suggestions to tiggr@es.ele.tue.nl.

The available classes and kits are categorized as follows:

	Stepstone	Stepstone libraries,
			for use with Stepstone's environment
	NeXT		NeXT kits, for use with NEXTSTEP
	FSF		FSF maintained/released classes
			for use with GNU CC
	Third Party	commercial classes
	GPL		classes released under the GPL
	Public Domain	public domain classes---no GPL


Stepstone

    Bundled with the compiler is ICpak(tm) 101 Foundation Class Library.
    This library provides twenty classes and more than three hundred methods
    including such things as Collections (OrdCltn, Stack, Set, Dictionary,
    SortCltn), Arrays (IdArray, IntArray), String, Sequences, Automatic
    Object I/O (ASCII Filer), etc.

    The ICpak 201 Graphical User Interface library is used to build iconic
    multiwindow user interfaces for workstation applications.  The library
    consists of 58 classes and over 1,100 methods.  Classes include such
    things as Controllers, Menu's, Menu Items, Icons, Windows(StdLayer),
    Timers, Buttons, Text, etc, etc.  ICpak 201 is ported to X Windows,
    OpenWindows, Motif and SunView and provides a consistent user interface/
    look-and-feel between all platforms.

    Contact

	The Stepstone Corporation
	75 Glen Road
	Sandy Hook, CT 06482
	tel: (203) 426-1875
	fax: (203) 270-0106
	telex: 506127

NeXT

    Common Classes

	Several classes provided with NeXTSTEP do not belong to a specific
	kit: Object (core of the runtime system, root of the general class
	hierarchy), Storage, List (an abstract array), HashTable (to store
	(key, object) associations), StreamTable (to write data to streams)
	and NXStringTable (to store (key, string) associations).

    Application Kit

	The Application Kit defines a set of Objective-C classes and
	protocols, C functions, and assorted constants and data types that
	are used by virtually every NeXTSTEP application.  The pith of the
	Kit are the tools it provides for implementing a graphical,
	event-driven user interface:

	    The Application Kit provides classes---most notably Window and
	    View---that make drawing on the screen exquisitely succinct.
	    Much of the unromantic work that's involved in
	    drawing---communicating with hardware devices and screen
	    buffers, clearing areas of the screen before drawing,
	    coordinating overlapping drawing areas---is taken care of for
	    you, letting you concentrate on the much more gratifying task of
	    supplying code that simply draws.  And even this task is
	    assisted by many of the other classes and a number of C
	    functions that provide drawing code for you.

	    The Application Kit makes event handling extremely simple.  The
	    Responder class, from which many of the Kit's classes inherit,
	    defines a mechanism by which the user's actions are passed to
	    the objects in your application that can best respond to them.
	    The Application class, which inherits from Responder,
	    establishes the low-level connections that makes this system
	    possible.  It provides methods that inform your application of
	    watershed events, such as when the user makes the application
	    active and inactive, and when the user logs out or turns off the
	    computer.

	By using these tools, you bless your application with a look and
	feel that's similar to other applications, making it easier for the
	user to recognize and use.

	(Introduction from the NeXTSTEP General Reference, "Application Kit"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    Database Kit

	The Database Kit provides a comprehensive set of tools, classes, and
	protocols for building applications that use a high-level
	entity-relationship model to manipulate database servers such as
	those provided by Oracle or Sybase.  The kit provides services that
	include:

	    Communication with client-server databases.

	    Modeling properties (attributes and relationships) of each
	    database.

	    Record management and buffering.

	    Data flow between record managers and the application user
	    interface.

	    User interface objects for display and editing.

	(Introduction from the NeXTSTEP General Reference, "Database Kit"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    Distributed Objects

	The Distributed Objects system provides a relatively simple way for
	applications to communicate with one another by allowing them to
	share Objective-C objects, even amongst applications running on
	different machines across a network.  They are useful for
	implementing client-server and cooperative applications.  The
	Distributed Objects system subsumes the network aspects of typical
	remote procedure call (RPC) programming, and allow an application to
	send messages to remote objects using ordinary Objective-C syntax.

	The Distributed Objects system takes the form of two classes,
	NXConnection and NXProxy.  NXConnection objects are primarily
	bookkeepers that manage resources passed between applications.
	NXProxy objects are local objects that represent remote objects.
	When a remote object is passed to your application, it is passed in
	the form of a proxy that stands in for the remote object; messages
	to the proxy are forwarded to the remote object, so for most intents
	and purposes the proxy can be treated as though it were the object
	itself.  Note that direct access to instance variables of the remote
	object isn't available through the proxy.

	(Introduction from the NeXTSTEP General Reference, "Distributed Objects"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    Indexing Kit

	The Indexing Kit is a set of programmatic tools for managing data,
	especially the large amounts of data characteristic of information
	intensive applications.  Much as the Application Kit provides a
	framework for a graphical interface, the Indexing Kit provides a
	framework for data management.

	The Indexing Kit supplies facilities for building custom databases
	and for searching the UNIX file system.  Key benefits include
	guaranteed data integrity, excellent performance, thread-safe
	operation, tight integration with the NeXTSTEP programming
	environment, and the ability to efficiently store and retrieve
	Objective-C objects and unstructured data like text, sound, and
	images.

	The Indexing Kit consists of:

	    A transaction-oriented foundation for storing and retrieving
	    persistent data, using virtual memory mapping for efficient
	    random access to parts of a file without reading or writing the
	    entire file. Transactions guarantee data integrity on persistent
	    storage media, and are also used to manage concurrent access to
	    shared data.

	    Fast sequential and associative access to stored data.
	    Associative access is untyped, in that the programmer defines
	    the data types of keys and their ordering by means of a
	    comparison function or a format string.

	    A simple data management capability based on the Objective-C
	    run-time system.  Records can be moved efficiently between
	    working memory and the storage substrate in the form of
	    Objective-C objects.  Multiple indexes can be built over
	    programmer-defined attributes, so that records can be ordered
	    and retrieved by the values of their indexed attributes.

	    A general query processing facility, including a declarative
	    query language and its interpreter.  Queries can be applied to
	    individual objects, to collections of objects, or to the
	    attribute/value lists produced by Indexing Kit's customizable
	    text processing tools.

	    High-level file system searching facilities based on the
	    supporting layers described above, including fast literal
	    searching of file contents.

	(Introduction from the NeXTSTEP General Reference, "Indexing Kit"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    Mach Kit

	The Mach Kit provides an object-oriented interface to some of the
	features of the Mach operating system.  At this time, it is most
	useful to applications that make use of the Distributed Objects
	system, since these applications rely upon Mach's message sending
	abilities to transport objects, ports, and data between processes.
	The Mach Kit may also be useful for drivers and multithreaded
	applications.  The Mach Kit provides several classes and protocols,
	listed below.

	(Introduction from the NeXTSTEP General Reference, "Mach Kit"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    NextInfo Kit

	The NetInfo Kit is a collection of classes and a single function
	used to provide a connection to and interface with NetInfo domains.
	The NetInfo Kit provides classes for basic interface with a domain
	as well as specialized panels.

	(Introduction from the NeXTSTEP General Reference, "NetInfo Kit"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    3D Kit

	The 3D Graphics Kit enables NeXTSTEP applications to model and
	render 3-dimensional scenes.  Much as the Application Kit's 2D
	graphics capabilities are based on the Display PostScript
	interpreter, the 3D Kit's capabilities are based on the Interactive
	RenderMan renderer.  There are both similarities and differences in
	the inner workings of the two implementations.

	One similarity is that both are implemented with a client-server
	model, in which client applications send drawing code to the Window
	Server, which does the actual drawing.  Another similarity is that
	N3DCamera---the 3D Kit's View---generates all drawing code, both 2D
	and 3D, when its drawSelf: method is invoked.  This keeps the
	Application Kit's display mechanism intact for both PostScript and
	RenderMan drawing.

	One difference in the implementations is in the code generated for
	drawing. For 2D drawing, a View sends PostScript code to the Window
	Server's Display PostScript interpreter.  For 3D drawing, a View
	sends RenderMan Interface Bytestream (RIB) code to the Window
	Server's Interactive RenderMan renderer.

	(Introduction from the NeXTSTEP General Reference, "3D Graphics Kit"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    Sound Kit

	XXX

    NXLiveVideoView

	The NXLiveVideoView class provides API for interactive display of
	live video on the screen of a NeXTdimension Computer.  The
	NXLiveVideoView class specification provides a complete discussion
	of the NeXTdimension Computer's video capabilities and the API
	provided by NXLiveVideoView.

	(Introduction from the NeXTSTEP General Reference, "Video"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    Applications

	There are several classes which solely exist to enable the
	programmer to add functionality to specific existing NEXTSTEP
	applications:

	    IBPalette, IBInspector

		These classes allow developers to expand the functionality
		of the Interface Builder application, creating their own
		palettes of objects that can be dragged into an interface,
		and inspectors to set and view the attributes of those
		objects.

	    Layout

		This class allows developers to add their own modules to the
		Preferences application.

	    WMInspector

		This class allows developers to add their own file contents
		inspectors to the Workspace Manager application.

    Other

	Before NeXTSTEP 3.0, MusicKit was distributed as part of NEXTSTEP.
	MusicKit is now maintained and made available by CCRMA (see the
	entry under `Public Domain Kits').  Also until the advent of
	NeXTSTEP 3.0, PhoneKit was part of NeXTSTEP.  PhoneKit classes
	provided easy to ISDN connections.

    Contact

	NeXT Computer, Inc.
	900 Chesapeake Drive
	Redwood City, CA 94063
	tel: 800 848 NEXT
	fax: 415 780 2801
	email: NeXTanswers@NeXT.COM

FSF

    Object

	Object is the root class which comes as part of the Objective-C
	runtime library provided with the GNU CC compiler.

    Collection Library

	The Collection Library is a library of Objective-C objects with
	similar functionality to Smalltalk's Collection objects.  It
	includes: Set, Bag, Array, CircularArray, GapArray, Queue, Stack,
	Heap, LinkedList, BinaryTree, SplayTree, RBTree, Dictionary,
	MappedCollector, EltNodeCollector and DelegateList.

	Outside of its main hierarchy it also includes List, HashTable and
	Storage objects compatible with NeXT's objects of the same name.

	An alfa release of the Collection Library can be obtained by FTP
	from cs.rochester.edu:/pub/libcoll/libcoll-yymmdd.tar.gz, in
	which `yymmdd' is a string of digits specifies its date.

	The Collection Library needs GCC 2.5.0 or a more recent version
	to be compiled.

	Contact: mccallum@cs.rochester.edu

    Contact

	Free Software Foundation
	675 Massachusetts Avenue
	Cambridge, MA  02139
	+1-617-876-3296


Third Party Kits

    Berkeley Productivity Group

	BPG BLOCKS

	    BPG BLOCKS is an open extensible manufacturing framework which
	    supports a variety of applications including factory definition,
	    real-time tracking, real-time scheduling, short-term planning,
	    shift scheduling, production planning and capacity analysis.
	    BPG BLOCKS creates a virtual reality which represents the real
	    factory including the people, machines, material, processes,
	    their dynamics and interactions.  BPG BLOCKS is based on an easy
	    to understand design where every software object represents
	    either a real-world entity, or an important concept in the
	    manufacturing domain.  BPG BLOCKS' object-oriented manufacturing
	    model mirrors the real world, captures numerous manufacturing
	    details accurately, supports commonly used abstractions, and
	    allows decisions to be made based on aggregate information.  BPG
	    BLOCKS forms the basis for building custom applications which
	    meet the unique needs of your particular manufacturing
	    facility.

	Contact

	    Christopher Lozinski
            BPG
            35032 Maidstone Court
            Newark, CA 94560
            tel: (510) 795-6086
            fax: (510) 795-8077
            email: lozinski@cup.portal.com


    M. Onyschuk and Associates Inc.

	OBJECT:Math

	    OBJECT:Math is a comprehensive set of tools and 23 Objective-C
	    classes used to add extensible math and string handling to your
	    custom and commercial applications:

		Compiler---The OBJECT:Math Compiler converts math and string
		expressions (as might be typed into a spreadsheet cell,
		plotting package, etc.) into Objective-C objects.

		Unbundler---The OBJECT:Math Unbundler object allows
		end-users to extend their OBJECT:Math applications with
		custom-built or third-party OBJECT:Math function bundles.

		User Interface Objects---OBJECT:Math comes complete with a
		Lotus Improv (TM) style function picker, a variable editor,
		and objects used to display OBJECT:Math expression trees and
		other tree structures.

	    As product sources are available the product may even be of
	    interest to non-NeXT Objective-C programmers.

	Contact

	    Mark Onyschuk
	    M. Onyschuk and Associates Inc.
	    tel: (416) 462 3954
	    email: ask-oa@plexus.guild.org


    Stream Technologies Inc.

	Store

	    Store is an Object Oriented User Level Virtual File System.
	    It is described extensively in `Store - Object Oriented Virtual
	    File System' by Timo Lehtinen, which is available by anonymous
	    FTP from ftp.sti.fi:/pub/sti/doc/papers/store.ps.

	Contact

	    Stream Technologies Inc.
	    Valkj\"arventie 2
	    SF-02130 Espoo
	    Finland
	    tel: +358 (0) 4357 7348
	    fax: +358 (0) 4357 7340
	    email: info@sti.fi


GPL Kits

   objcX

	An alpha version of an GNU Objective-C class library for X/Motif
	Windows is available via anonymous ftp from

	    ftp.slac.stanford.edu:pub/sources/objcX-0.5.tar.gz.

	For lack of a good witty name, the library is called objcX.

	The library requires the List class from the Collection Library for
	GNU Objective-C (libcoll).

	Because we built this library to support porting NeXTSTEP
	applications to X/Motif and because our GUI programming experience
	has been with NeXTSTEP, this class library has a strongly
	resemblance to NeXT's AppKit.  However, it is only a Objective-C
	wrapper to Motif widgets and does not support Display PostScript,
	rich text, pasteboard, drag and drop, services or many other things
	associated with the NeXTSTEP environment that are not available
	under X windows.

	Also available, for a NeXTSTEP platform only, is a program that
	converts an object archive file generated by the InterfaceBuilder
	(.nib file) into a GNU object archive file usable by the objcX class
	library.  It is available from

	    ftp.slac.stanford.edu:pub/sources/trnib-0.5.tar.gz

	This program requires NeXTSTEP developer and gcc.

	These announcements are also a call for help.  The library and the
	translator program could use much more work in two areas...

	 - first the library could be flushed out with more features to
	   support larger applications

	 - second, I would like to contribute the library to the GNU
	   project. But it is based on Motif widgets which is not free
	   software.  Thus, work is needed to replace Motif widgets with
	   widgets based on free software.

	Contact

	    Paul F. Kunz	Paul_Kunz@slac.stanford.edu (NeXT mail ok)
	    Stanford Linear Accelerator Center, Stanford University
	    Voice: (415) 926-2884   (NeXT) Fax: (415) 926-3587


    Tiggr's Objective-C Library

	Tiggr's Objective-C Library, or tobjc for short, is a basic
	Objective-C library, whose functionality is based on Lisp.

	tobjc provides the following classes: LispObject, LispVector,
	Cons, Double, Integer, String, AVLTree, THashTable, StringTable,
	Trie, Lex, LexC and LexDFG.  Furthermore, tobjc includes a
	program to extract documentation from Objective-C source files.

	All classes are a subclass of LispObject.  The LispObject class
	provides its allocation routines and garbage collection (through
	class abstraction) to its subclasses.

	tobjc is undergoing continuous development.  Test releases can
	be obtained by anonymous FTP to `ftp.es.ele.tue.nl' as
	`/pub/objc/tobjc-x.xx.tar.gz', where `x.xx' is some version
	indication.  It is by no means finished yet, but certainly
	useful (I use it for developing a VHDL->ASCIS DFG compiler).

	Contact

	    Pieter J. `Tiggr' Schoenmakers
	    email: tiggr@es.ele.tue.nl
	    tel: +31 40 474251
	    fax: +31 40 464527


Public Domain Kits

    CCRMA

	MusicKit

	    The Music Kit3 provides tools for designing music
	    applications. These tools address three topics: music
	    representation, performance, and synthesis (digital sound
	    generation and processing).  The Objective-C classes defined in
	    the Music Kit fall neatly into these three areas.

	    The design goal of the Music Kit is to combine the interactive
	    gestural control of MIDI with the precise timbral control of
	    MUSIC 5-type systems in an extensible, object-oriented
	    environment. To this end, the Music Kit is capable of fully
	    representing MIDI.  The Music Kit accepts MIDI in and can send
	    MIDI out through the two serial ports at the back of the
	    computer. Nonetheless, the Music Kit isn't limited by the MIDI
	    specification; for example, its resolution of frequency and
	    amplitude is much finer than MIDI's highly quantized values.

	    The Music Kit generates sounds by sending synthesis instructions
	    to the DSP.  The generality of the synthesis software far
	    surpasses that of commercial synthesizers.  While most
	    synthesizers employ only one type of synthesis-the Yamaha DX-7
	    uses only frequency modulation, for example-the Music Kit can
	    implement virtually any sound synthesis strategy.  And since the
	    synthesis engine (the DSP) and the control stream are brought
	    together in a single high-performance computer, the Music Kit
	    makes possible an unprecedented level of expressive control.
	    (from Documentation/MusicKit+DSP/General/SoundMusicDSP.rtfd)

	    MusicKit used to be supplied by NeXT as part of NeXTSTEP (pre
	    3.0).  It is now maintained by CCRMA and available by FTP from
	    ccrma-ftp.stanford.edu.  There are two packages:

		pub/MusicKit_3.1.pkg.tar

		    Class library, header files, documentation, programming
		    examples, and a suite of applications (size = 7.38MB).

		pub/MusicKitSource_3.1.pkg.tar
		    Source of the MusicKit class library (size = 5.5MB).

	    and some other related files:

		22333 May 27  1993 MusicKit-NWExpo93.rtf
		 2379 Feb 14  1993 MusicKit.README
		60293 Dec  8  1992 MusicKit_3.1_KnownBugs

	Contact

	    email: musickit@ccrma.stanford.edu


ADMINISTRATIVIA

    The information in this file comes AS IS, WITHOUT ANY WARRANTY.  You may
    use the information contained in this file or distribute this file, as
    long as you do not modify it, make money out of it or take the credits.

The first version of this FAQ was written by Bill Shirly, helped by the
feedback and information given to him by a lot of people.  The current
version is maintained by Tiggr, supported by feedback from Glen Diener,
Christopher Lozinski and a lot of other people.  Mail your bug reports,
comments, suggestions and additions to tiggr@es.ele.tue.nl.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads