ftp.nice.ch/pub/next/developer/resources/palettes/OATextFieldPalette.950321.s.gnutar.gz#/OATextFieldPalette.950321/RZBundle.h

This is RZBundle.h in view mode; [Download] [Up]

/*
 * RZBundle
 *
 * A subclass of NXBundle that provides 2 key features:
 *
 * \t1\tParsing of the "bundle.table" resource and ability to return key/value pairs
 *
 * \t2\tParsing of the "class.list" resource and the ability to return the class
 * content, protocol conformance and inheritance of objects within the bundle.
 *
 * Copyright 1994 Ralph Zazula.  All Rights Reserved.
 *
 * No part of this code may be reproduced in any form, compiled
 * or source code, nor used for any purpose without the express
 * written permission of the copyright holder.
 *
 * 11/14/94 - permission granted to use for any purpose excluding
 * 	resale or use as a dietary suppliment.
 *
 * By: Ralph Zazula (rzazula@next.com, zazula@hitower.com)
 */

#import <appkit/appkit.h>

#define @(x) objc_getClass(#x)
/*
 * This macro allows the use of class names for dynamically loaded classes.
 *    For example:  [[@(DynLoadClass) alloc] init];
 * If "DynLoadClass" is not present in the runtime system, the call to
 * objc_getClass() will cause the RZBundle class error handler
 * rzbundle_objc_classHandler to be invoked and load the approprate bundle.
 */
 
@interface RZBundle : NXBundle
{
   id infoTable;           // for the contents of the 'bundle.table' file
   id classTable;          // 'class.table'
   id dependTable;         // 'depend.table'
}

int rzbundle_objc_classHandler(const char *name);
/*
 * This function will be installed as the class lookup error
 * handler.  This is called when objc_getClass() fails to try
 * and load the proper bundle for the class "name".  Returns
 * the newly load class, or 'Nil' on failure.
 */

+ addBundlesInPath:(const char *)path withExtension:(const char *)extension;
/*
 * Creates RZBundle instances for all files *."extension" in the folder
 * "path".
 */

+ addBundlesInPath:(const char *)path;
/*
 * Creates RZBundle instances for all files *.bundle in the folder
 * "path".
 */

+ setup;
/*
 * Installs the class lookup error handling function for automatic
 * bundle loading.
 */

+ alloc;
+ allocFromZone:(NXZone *)zone;
+ (RZBundle *)bundleContainingClass:(const char *)className;
/*
 * Returns the first bundle found containing the class "className" or 'nil' if
 * no bundles currently initialized contain the class "className".  
 */

+ (BOOL)doPreloadsFor:(RZBundle *)bundle;
/*
 * Attempts to load any bundles containing classes required to load "bundle".
 * Returns YES on success (all external classes found) and NO on failure.
 * Upon success, the code for "bundle" and the code of any required bundles 
 * will be loaded.  Upon failure, the code for "bundle" will not be loaded but 
 * some or all of the prerequisite bundles may be loaded.
 */

+ classNamed:(const char *)className;
/*
 * Searches all initialized bundles for one containing "className".  If a bundle
 * is found, the receiver performs any preloading required and then returns the
 * class for "className".  Returns 'Nil' if the class "className" cannot be found,
 * or if the preloading could not be performed.
 */

+ (BOOL)loadNib:(const char *)name for:anObject;
/*
 * Locates and loads the nib "name" with "anObject" as the owner.
 */

+ (List *)bundlesWithValue:(const char *)value forString:(const char *)key;
/*
 * Returns a List of RZBundle instances whose 'bundle.table' file contain
 * the key/value pair: "key" = "value".  Returns 'nil' if no bundles contain
 * the key/value pair.  The List should be freed by the caller.
 */

- (NXStringTable *)classTable;
/*
 * Returns the NXStringTable instance representing the 'class.table' file
 * for the reciever.  This table has the names of the classes defined
 * in the receiver.
 */

- (NXStringTable *)dependTable;
/*
 * Returns the NXStringTable instance representing the 'depend.table' file
 * for the reciever.  This table has the names of the external classes 
 * required by the receiver.  The class list may contain classes already
 * present in the runtime system (i.e., it is not pruned against objc_lookUpClass()).
 */

- (NXStringTable *)infoTable;
/*
 * Returns the NXStringTable instance representing the 'bundle.table' file
 * for the reciever.  This table has the user-defined key/value pairs.
 */

- classNamed:(const char *)className;
/*
 * Overriden to perform dependency checking and bundle pre-loading
 * before loading the code for the receiving bundle.
 */

- principalClass;
/*
 * Overriden to perform dependency checking and bundle pre-loading
 * before loading the code for the receiving bundle.
 */

- free;
- (BOOL)containsClass:(const char *)name;
/*
 * Returns YES if this bundle contains the class named 'name'.  This information
 * is based on the contents of the file 'class.table' in the receivers bundle.
 */

- (BOOL)doPreloads;
/*
 * Checks for any external class dependancies and tries to resolve them.  Returns
 * YES on success and NO on failure.  Upon success, the recivers code and the code
 * of any required bundles will be loaded.  Upon failure, the receivers code will
 * not be loaded but some or all of the prerequisite bundles may be loaded.
 */

- (const char *)valueForString:(const char *)s;
/*
 * Returns the string value for keyword 's' found in the resource
 * 'bundle.table'.  Returns NULL if the keyword is not found.
 */

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.