This is EMErrorAction.m in view mode; [Download] [Up]
#import "EMErrorAction.h"
#import <appkit/appkit.h>
#import <syslog.h>
#define intstrg(val) { val, #val }
#define EOTAB -95
typedef struct
{
int intval;
char *symbconst;
} EMSymbConst;
static EMSymbConst priorities[]=
{
intstrg(LOG_EMERG),
intstrg(LOG_ALERT),
intstrg(LOG_CRIT),
intstrg(LOG_ERR),
intstrg(LOG_WARNING),
intstrg(LOG_NOTICE),
intstrg(LOG_INFO),
intstrg(LOG_DEBUG),
intstrg(EOTAB)
};
@implementation EMErrorAction:Object
//--------------------------------------------------------------------------------
// INIT & FREE
//--------------------------------------------------------------------------------
- initType:(EMErrorActionType)aType;
{
[super init];
type=aType;
return self;
}
- (EMErrorActionType)type;
{
return type;
}
//--------------------------------------------------------------------------------
// ARCHIVIERUNG
//--------------------------------------------------------------------------------
- write:(NXTypedStream *)stream;
{
[super write:stream];
NXWriteTypes(stream,"i***",&type,&msgTemplate,&support1,&support2);
return self;
}
- read:(NXTypedStream *)stream;
{
[super read:stream];
NXReadTypes(stream,"i***",&type,&msgTemplate,&support1,&support2);
return self;
}
//--------------------------------------------------------------------------------
// Private I-VAR
//--------------------------------------------------------------------------------
- setSupport1:(const char *)strg ifType:(int)exptype;
{
if(type!=exptype)
return nil;
if(support1)
NX_FREE(support1);
if(strg)
support1=NXCopyStringBufferFromZone(strg,[self zone]);
else
support1=NULL;
return self;
}
- (const char *)support1IfType:(int)exptype;
{
if(type!=exptype)
return NULL;
return support1;
}
- setSupport2:(const char *)strg ifType:(int)exptype;
{
if(type!=exptype)
return nil;
if(support2)
NX_FREE(support2);
if(strg)
support2=NXCopyStringBufferFromZone(strg,[self zone]);
else
support2=NULL;
return self;
}
- (const char *)support2IfType:(int)exptype;
{
if(type!=exptype)
return NULL;
return support2;
}
//--------------------------------------------------------------------------------
// Public I-VAR METHODEN
//--------------------------------------------------------------------------------
- setMsgTemplate:(const char *)text;
{
if(msgTemplate)
NX_FREE(msgTemplate);
msgTemplate=NXCopyStringBufferFromZone(text,[self zone]);
return self;
}
- (const char *)msgTemplate;
{
return msgTemplate;
}
- setPortname:(const char *)name;
{
return [self setSupport1:name ifType:EMActionDO];
}
- (const char *)portName;
{
return [self support1IfType:EMActionDO];
}
- setSelector:(const char *)name;
{
return [self setSupport2:name ifType:EMActionDO];
}
- (const char *)selector;
{
return [self support2IfType:EMActionDO];
}
- setPriority:(const char *)name;
{
int i;
char p[10];
for(i=0;priorities[i].intval!=EOTAB;i++)
if(!strcmp(name,priorities[i].symbconst))
{
sprintf(p,"%d", priorities[i].intval);
break;
}
if(priorities[i].intval==EOTAB)
return nil;
return [self setSupport1:p ifType:EMActionSyslog];
}
- (const char *)priority;
{
return [self support1IfType:EMActionSyslog];
}
- setFilename:(const char *)name;
{
return [self setSupport1:name ifType:EMActionLogfile];
}
- (const char *)filename;
{
return [self support1IfType:EMActionLogfile];
}
- setRecipient:(const char *)name;
{
return [self setSupport1:name ifType:EMActionMail];
}
- (const char *)recipient;
{
return [self support1IfType:EMActionMail];
}
- setSubject:(const char *)subject;
{
return [self setSupport2:subject ifType:EMActionMail];
}
- (const char *)subject;
{
return [self support2IfType:EMActionMail];
}
- setTitle:(const char *)title;
{
return [self setSupport1:title ifType:EMActionAlert];
}
- (const char *)title;
{
return [self support1IfType:EMActionAlert];
}
- setButton:(const char *)title;
{
return [self setSupport2:title ifType:EMActionAlert];
}
- (const char *)button;
{
return [self support2IfType:EMActionAlert];
}
//--------------------------------------------------------------------------------
// THAT'S IT
//--------------------------------------------------------------------------------
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.