home *** CD-ROM | disk | FTP | other *** search
- /*
- IXStoreDirectory.h
- Copyright 1991, NeXT Computer, Inc.
- */
-
- #import <objc/Object.h>
- #import <store/IXStoreFile.h>
-
- #ifndef RELEASE_2
- @class IXBTreeCursor;
- #endif RELEASE_2
-
- // this class implements a simple directory for managing store clients.
-
- #ifndef RELEASE_2
- @interface IXStoreDirectory: Object <IXBlockAndStoreAccess, IXNameAndFileAccess>
- #else RELEASE_2
- @interface IXStoreDirectory: Object
- #endif RELEASE_2
- {
- BOOL _freeStore;
- char *_handleName;
- unsigned _blockHandle;
- IXStore *_store;
- #ifndef RELEASE_2
- IXBTreeCursor *_btreeCursor;
- #else RELEASE_2
- id _btreeCursor;
- #endif RELEASE_2
- }
-
- // supplied class must be store client
- - addEntryNamed:(const char *)aName ofClass:aClass;
- - addEntryNamed:(const char *)aName ofClass:aClass
- atBlock:(unsigned)aHandle;
- - addEntryNamed:(const char *)aName forObject:anObject;
-
- - (const char **)entries; // caller must free the array of entry names
-
- - reset; // removes all entries
- - removeName:(const char *)aName; // removes, but doesn't free entry
-
- - empty; // frees all entries
- - freeEntryNamed:(const char *)aName; // removes entry and frees from store
-
- - (BOOL)hasEntryNamed:(const char *)aName;
- - openEntryNamed:(const char *)aName;
-
- - getBlock:(unsigned *)aBlock ofEntryNamed:(const char *)aName;
- - getClass:(Class *)aClass ofEntryNamed:(const char *)aName;
-
- #ifdef RELEASE_2
- // @pr1ol IXBlockAndStoreAccess
-
- + freeFromBlock:(unsigned)aHandle inStore:(id)aStore;
- - freeFromStore;
-
- - initInStore:(id)aStore;
- - initFromBlock:(unsigned)aHandle inStore:(id)aStore;
-
- - getBlock:(unsigned *)aHandle andStore:(id *)aStore;
-
- // @protocol IXNameAndFileAccess
-
- + freeFromName:(const char *)aName inFile:(const char *)aFile;
-
- - initWithName:(const char *)aName inFile:(const char *)aFile;
- - initFromName:(const char *)aName inFile:(const char *)aFile
- forWriting:(BOOL)writingFlag;
-
- - getName:(const char **)aName andFile:(const char **)aFile;
- #endif RELEASE_2
-
- @end
-
-