This is EMErrorManager.h in view mode; [Download] [Up]
#import <objc/error.h>
#import "EMErrorInfo.h"
#import "EMErrorDescription.h"
#import "dispatcher.h"
#define ERROR_MANAGER [EMErrorManager new]
#define EM_ERROR_RANGE 1000000
#define EM_KITBASE (0)
#define EM_INTBASE (NX_APP_ERROR_BASE)
#define EM_SIGBASE (NX_APP_ERROR_BASE+50)
#define EM_APPBASE (NX_APP_ERROR_BASE+100)
#define EM_ERROR(NUM,UD1,UD2) [ERROR_MANAGER raise:\
[EMErrorInfo newWithCode:NUM userInfo:(UD1):(UD2)\
file:__FILE__ line: __LINE__ ]]
#define EM_ERRORF(NUM,UD1,UD2,UDFDESC) [ERROR_MANAGER raise:\
[[EMErrorInfo newWithCode:NUM userInfo:(UD1):(UD2)\
file:__FILE__ line: __LINE__ ] setUDFreeSemantics:(UDFDESC)]]
#define EM_CONDERROR(P,NUM,UD1,UD2) do { if(P) EM_ERROR(NUM,UD1,UD2); } while(0)
#define EM_CONDERRORF(P,NUM,UD1,UD2,UDFDESC) \
do { if(P) EM_ERRORF(NUM,UD1,UD2,UDFDESC); } while(0)
#define EM_DURING NX_DURING
#define EM_HANDLER NX_HANDLER do { \
EMErrorInfo *EMLocalException=EMInfoObjectForHandler(&NXLocalHandler);
#define EM_ENDHANDLER [ERROR_MANAGER handle:EMLocalException]; } while(0); \
NX_ENDHANDLER
#define EM_EMPTYHANDLER EM_HANDLER EM_ENDHANDLER
#define EM_MAJOR_VERSION 1
#define EM_MINOR_VERSION 1
#define EM_EMC_VERSION 5
EMErrorInfo *EMInfoObjectForHandler(NXHandler *errorState);
@class HashTable, NXBundle;
@interface EMErrorManager:Object
{
HashTable *errorDescriptions;
HashTable *objectsToNotify;
}
+ new;
- init;
- free;
- readErrorDescriptions;
- readErrorDescriptionsFromBundle:(NXBundle *)bundle;
- (HashTable *)errorDescriptions;
- (EMErrorDescription *)errorDescriptionFor:(int)code;
- installErrorReporter:(BOOL)flag;
- installErrorHandler:(BOOL)flag;
- installSignalHandler:(BOOL)flag;
- raise:infoObject;
- handle:infoObject;
- notify:obj of:infoObject;
- addObserver:anObject selector:(SEL)aSel forError:(int)errorNumber;
- addObserver:anObject selector:(SEL)aSel forErrors:(int)base:(int)count;
- removeObserver:anObject forError:(int)errorNumber;
- removeObserver:anObject forErrors:(int)base:(int)count;
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.