home *** CD-ROM | disk | FTP | other *** search
- /*
- protocols.h
- Copyright 1991,NeXT Computer,Inc.
- */
-
- #import <objc/objc.h>
- #ifdef RELEASE_2
- #import <objc/Object.h>
- #endif RELEASE_2
-
- #ifndef RELEASE_2
- @class IXStore;
- #endif RELEASE_2
-
- #define IX_ALLBLOCKS ((unsigned) -1L)
-
- #define IX_STOREUSERERRBASE (9000)
- #define IX_STOREMACHERRBASE IX_STOREUSERERRBASE + (100)
- #define IX_STOREUNIXERRBASE IX_STOREUSERERRBASE + (300)
-
- typedef enum IXStoreErrorType {
- IX_NoError = IX_STOREUSERERRBASE,
- IX_InternalError,
- IX_ArgumentError,
- IX_QueryEvalError,
- IX_QueryTypeError,
- IX_QueryAttrError,
- IX_QueryImplError,
- IX_QueryYaccError,
- IX_MemoryError,
- IX_LockedError,
- IX_MachineError,
- IX_VersionError,
- IX_DamagedError,
- IX_DuplicateError,
- IX_NotFoundError,' IX_TooLargeError,
- IX_UnixErrorBase = IX_STOREUNIXERRBASE,
- IX_MachErrorBase = IX_STOREMACHERRBASE
- } IXStoreErrorType;
-
- #ifndef RELEASE_2
- @protocol IXBlockAndStoreAccess
- #else RELEASE_2
- @interface Object (IXBlockAndStoreAccess)
- #endif RELEASE_2
-
- // frees storage resources for client
- #ifndef RELEASE_2
- + freeFromBlock:(unsigned)aHandle inStore:(IXStore *)aStore;
- #else RELEASE_2
- + freeFromBlock:(unsigned)aHandle inStore:(id)aStore;
- #endif RELEASE_2
-
- // frees client and storage resources
- - freeFromStore;
-
- // finds out where client lives
- #ifndef RELEASE_2
- - getBlock:(unsigned *)aHandle andStore:(IXStore **)aStore;
- #else RELEASE_2
- - getBlock:(unsigned *)aHandle andStore:(id *)aStore;
- #endif RELEASE_2
-
- // allocates storage resources for client
- #ifndef RELEASE_2
- - initInStore:(IXStore *)aStore;
- #else RELEASE_2
- - initInStore:(id)aStore;
- #endif RELEASE_2
-
- // inits from existing storage resources
- #ifndef RELEASE_2
- - initFromBlock:(unsigned)aHandle inStore:(IXStore *)aStore;
- #else RELEASE_2
- - initFromBlock:(unsigned)aHandle inStore:(id)aStore;
- #endif RELEASE_2
-
- @end
-
- #ifndef RELEASE_2
- @protocol IXNameAndFileAccess <IXBlockAndStoreAccess>
- #else RELEASE_2
- @interface Object (IXNameAndFileAccess)
- #endif RELEASE_2
-
- // frees storage resources for client
- + freeFromName:(const char *)aName inFile:(const char *)aFile;
-
- // frees client and storage resources
- - freeFromStore;
-
- // finds out where client lives
- - getName:(const char **)aName andFile:(const char **)aFile;
-
- // allocates storage resources for client
- - initWithName:(const char *)aName inFile:(const char *)aFile;
-
- // inits from existing storage resources
- - initFromName:(const char *)aName inFile:(const char *)aFile
- forWriting:(BOOL)writingFlag;
-
- @end
-
-