Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!spool.mu.edu!howland.reston.ans.net!europa.eng.gtefsd.com!uunet!mcsun!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: Followup-To: comp.lang.objective-c Date: 17 Aug 1993 10:09:55 GMT Organization: Eindhoven University of Technology, the Netherlands Lines: 491 Approved: news-answers-request@mit.edu Expires: 26 Sep 1993 10:09:52 GMT Message-ID: 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:1504 comp.answers:1639 news.answers:11485 Archive-name: Objective-C/classes Version: $Id: classes,v 1.7 1993/08/17 10:05:56 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 GNU classes released under the GPL Public Domain public domain classes---!GPL Stepstone Bundled with the compiler is ICpak 101---Foundation Class Library. Available separately for most systems are: ICpak 201---Graphical User Interface and ICpak 301---GRAPHpak 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. XXX FSF Object Currently, Object is the only class available from the FSF. It comes as part of the Objective-C runtime library provided with the GNU CC compiler. 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 to ftp.sti.fi as /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 Third Party Classes no information yet GNU Kits no information yet GNU Classes no information yet 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 Public Domain Classes no information yet 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. -- --Tiggr