This is DBBasicAdaptor.h in view mode; [Download] [Up]
/*
** DBBasicAdaptor.h
** Database Kit, Release 3.0
** Copyright (c) 1992, NeXT Computer, Inc. All rights reserved.
*/
#import <objc/Object.h>
#import <dbkit/protocols.h>
#import <dbkit/customType.h>
@class List, DBDatabase, DBBinder, NXBundle;
/*
** This is the class that all adaptors should inherit from. Normally, many of
** the default behaviors provided will be adequate.
**
** Most simple adaptors do not need to understand the following protocols --
** they exist for people who need to generate their own special query
** dialect, or who want to do complex runtime resource management. A
** simple adaptor need only implement a subset of the basic methods in
** order to work -- minimally evaluateString:using: and, if data is returned,
** fetchData:
**
** The expressionClass method returns the class used to generate query
** language (if any). The default is a private class called DBSQLExpression;
** see AdaptorNotes.rtf for a more detailed discussion of the requirements
** for implementing a new query language.
**
** contextClass returns the class used by contextForObject: The
** default is nil -- which results in messages being sent directly to the
** adaptor. If the class method is overridden to return a factory
** object, then the default behavior of DBBasicAdaptor will send the
** following messages to the context, rather than to the adaptor:
**
** - (BOOL)evaluateString:(const unsigned char*)aString
** using:(DBBinder*)aBinder;
** - (BOOL)fetchData:(DBBinder*)aBinder;
** - (BOOL)insertData:aBinder;
** - (BOOL)selectData:aBinder;
** - (BOOL)updateData:aBinder;
** - (BOOL)deleteData:aBinder;
**
*/
@interface DBBasicAdaptor : Object <DBTransactions>
{
@public
id bundle;
}
- initForDatabase:(DBDatabase*)aDatabase;
- (NXBundle*)bundle;
- (BOOL)connectUsingString:(const unsigned char*)aString;
- (BOOL)disconnectUsingString:(const unsigned char*)aString;
- (BOOL)isConnected;
- (BOOL)evaluateString:(const unsigned char*)aString using:(DBBinder*)aBinder;
- (BOOL)fetchData:(DBBinder*)aBinder;
- (void)fetchDone:(DBBinder*)aBinder;
- (BOOL)insertData:(DBBinder*)aBinder;
- (BOOL)selectData:(DBBinder*)aBinder;
- (BOOL)updateData:(DBBinder*)aBinder;
- (BOOL)deleteData:(DBBinder*)aBinder;
- (const unsigned char*)connectionName;
- (const unsigned char*)currentLoginString;
- (List*)enumerateEntities:(List*)aList;
- (List*)enumerateProperties:(List*)aList forEntity:(id<DBEntities>)anEntity;
/*
** Optional specialized support for ROWID and outer joins in relational
** databases.
*/
- (id<DBProperties>)recordIdentityProperty;
- (BOOL)outerJoinIsDefault;
- (BOOL)maintainContexts:(BOOL)yn;
- contextForObject:anObject;
- releaseContextForObject:anObject;
- expressionClass;
- contextClass;
- (BOOL)isTransactionInProgress;
- (BOOL)enableTransactions:(BOOL)yn;
- (BOOL)areTransactionsEnabled;
@end
@interface DBBasicAdaptorContext : Object
- initForAdaptor:anAdaptor;
- (BOOL)evaluateString:(const unsigned char*)aString using:(DBBinder*)aBinder;
- (BOOL)fetchData:(DBBinder*)aBinder;
@end
/*
** This is used to read objects from database buffers --
** If the property has a classname associated with it, and if that class
** responds to the selector initFromBuffer:ofLength:withFormat:
** then an object is allocated, that init method is invoked, and the
** object is returned.
**
** If the property has no format, then an attempt is made to
** unarchive an object. If there IS a format given, and there is
** no class or the class does not respond to the message above, then a
** default class may be used to allocate the object returned by the dbkit.
** (For example, an NXTIFFpboardType might return an NXImage by default.)
*/
extern id DBReadObject(void* buffer, unsigned length, id binder, id aProperty);
/*
** These are internationalization routines. DBLocalizedStringForAdaptor() will
** locate a string table with the name <adaptorname>.strings in an lproj
** within the adaptor bundle. Got that? DBLocalizedNibForAdaptor will look
** in the same place for a nibfile passed as a parameter.
*/
extern id DBLocalizedNibForAdaptor(const char *aNibFile, const char* aName);
extern const char *DBLocalizedStringForAdaptor(const char *key,
const char *val, const char *aClassname);
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.