ftp.nice.ch/pub/next/unix/database/gdbmAdaptor.0.5.NIHS.bs.tar.gz#/gdbmAdaptor-0.5/Source/dbmAdaptor-0.5/dbmAdaptor.h

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

/*
 *	File:		DBMAdaptor.h
 *
 *	Author:		Mike Henry
 *	Created:	24 Oct 1993
 *
 *	Copyright (c) Mike Henry, 1993. All Rights Reserved.
 */

#import <dbkit/DBBasicAdaptor.h>
#import <dbkit/DBValue.h>
#import <dbkit/protocols.h>
#import <objc/Object.h>

#ifdef GDBM
#import <gdbm.h>
typedef GDBM_FILE	DBM_FILE;

#else

#import <ndbm.h>
typedef DBM*		DBM_FILE;

#endif

#define ROW_INFO	".row"
#define SIZE_INFO	".siz"
#define HOLE_INFO	".hol"
#define COUNT_INFO	".cnt"

@class DBBinder;
@class DBDatabase;
@class List;
@class Registrar;

typedef unsigned long long dbm_t;

@interface dbmAdaptor : DBBasicAdaptor
{
  id		helpPanel;
  BOOL		isOpen;
  char*		wrapper;
  DBM_FILE	dbmInfo;
  DBDatabase*	database;
}

/* Basic Adaptor protocol */
- initForDatabase:(DBDatabase*)aDatabase;

- (BOOL)connectUsingString:(const char*)aString;
- (BOOL)disconnectUsingString:(const char*)aString;
- (BOOL)isConnected;

- (BOOL)insertData:(DBBinder*)binder;
- (BOOL)selectData:(DBBinder*)binder;
- (BOOL)updateData:(DBBinder*)binder;
- (BOOL)deleteData:(DBBinder*)binder;

- (BOOL)evaluateString:(const char*)aString using:(DBBinder*)binder;
- (BOOL)fetchData:(DBBinder*)binder;
- (void)fetchDone:(DBBinder*)binder;

- (const char*)connectionName;
- (const char*)currentLoginString;

/* These two methods are needed for building models via DBModeler */
- enumerateEntities:(List*)aList;
- enumerateProperties:(List*)aList forEntity:(id<DBEntities>)anEntity;

@end

@interface dbmAdaptor (Private)

- (DBM_FILE)openDBMFileForProperty:(id<DBProperties, DBExpressionValues>)property;
- (datum)getKeyForBinder:(DBBinder*)binder;
- (BOOL)storeForKey:(datum)key withBinder:(DBBinder*)binder;
- (void)convertDBValue:(DBValue*)value toDatum:(datum*)data;
- (dbm_t)get:(const char*)info for:entity;
- set:(const char*)info for:entity with:(dbm_t)value;

@end

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