home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 January
/
usenetsourcesnewsgroupsinfomagicjanuary1994.iso
/
answers
/
Objective-C
/
classes
< prev
next >
Wrap
Internet Message Format
|
1993-12-20
|
23KB
Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!xlink.net!zib-berlin.de!netmbx.de!Germany.EU.net!EU.net!sun4nl!tuegate.tue.nl!krait.es.ele.tue.nl!tiggr
From: tiggr@es.ele.tue.nl (Tiggr)
Newsgroups: comp.lang.objective-c,comp.answers,news.answers
Subject: comp.lang.objective-c FAQ, part 2/3: ClassWare Listing
Supersedes: <classes_753551527@es.ele.tue.nl>
Followup-To: comp.lang.objective-c
Date: 20 Dec 1993 16:26:19 GMT
Organization: Eindhoven University of Technology, the Netherlands
Lines: 579
Approved: news-answers-request@mit.edu
Expires: 29 Jan 1994 16:26:13 GMT
Message-ID: <classes_756404773@es.ele.tue.nl>
Reply-To: tiggr@es.ele.tue.nl (Tiggr)
NNTP-Posting-Host: krait.es.ele.tue.nl
Summary: This second part of the comp.lang.objective-c FAQ postings
gives an overview of available class libraries.
Originator: tiggr@krait.es.ele.tue.nl
Xref: senator-bedfellow.mit.edu comp.lang.objective-c:1829 comp.answers:3102 news.answers:16032
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.