mirror of
https://github.com/gnustep/libs-ec.git
synced 2025-02-22 03:11:16 +00:00
allow identifier and clear for individual alerter events
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/ec/trunk@36467 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
6427be06f5
commit
5fdd699dcf
2 changed files with 76 additions and 20 deletions
44
EcAlerter.h
44
EcAlerter.h
|
@ -189,9 +189,14 @@
|
|||
- (void) flushSms;
|
||||
|
||||
/** <p>This method handles an error/alert event (an 'error' is one which may
|
||||
* be buffered, while an 'alert' must be sent immediately).
|
||||
* be buffered, while an 'alert' must be sent immediately).<br />
|
||||
* If the identifier field is non-nil then the event is an alert which is
|
||||
* identified by the value of the field and may be 'cleared' by a later
|
||||
* event with the same identfier and with the isClear flag set. The use
|
||||
* of an empty string as an identifier is permitted for events which should
|
||||
* not be buffered, but which will never be matched by a clear.
|
||||
* </p>
|
||||
* <p>Each event must consist of text associated with a host anme,
|
||||
* <p>Each event must consist of text associated with a host name,
|
||||
* server name (usually the process on the host) and timestamp.
|
||||
* </p>
|
||||
* <p>Each message is matched against each rule in the <em>Rules</em>
|
||||
|
@ -205,7 +210,8 @@
|
|||
withHost: (NSString*)hostName
|
||||
andServer: (NSString*)serverName
|
||||
timestamp: (NSString*)timestamp
|
||||
immediate: (BOOL)immediate;
|
||||
identifier: (NSString*)identifier
|
||||
isClear: (BOOL)isClear;
|
||||
|
||||
/** <p>This method handles error/alert messages. It is able to handle
|
||||
* multiple (newline separated messages.
|
||||
|
@ -214,34 +220,56 @@
|
|||
* serverName(hostName): YYYY-MM-DD hh:mm:ss.mmm szzzz type - text
|
||||
* </p>
|
||||
* <p>Each message is parsed an then the components are passed to
|
||||
* the -handleEvent:withHost:andServer:timestamp:immediate: method.
|
||||
* the -handleEvent:withHost:andServer:timestamp:identifier:isClear: method.
|
||||
* </p>
|
||||
*/
|
||||
- (void) handleInfo: (NSString*)str;
|
||||
|
||||
/** Called by -handleEvent:withHost:andServer:timestamp:immediate:
|
||||
/** Called by -handleEvent:withHost:andServer:timestamp:identifier:isClear:
|
||||
* to log a message to an array of destinations.
|
||||
*/
|
||||
- (void) log: (NSMutableDictionary*)m
|
||||
identifier: (NSString*)identifier
|
||||
isClear: (BOOL)isClear
|
||||
to: (NSArray*)destinations;
|
||||
|
||||
/** Calls -log:identifier:isClear:to: with a nil identifier.
|
||||
*/
|
||||
- (void) log: (NSMutableDictionary*)m to: (NSArray*)destinations;
|
||||
|
||||
/** Called by -handleEvent:withHost:andServer:timestamp:immediate:
|
||||
/** Called by -handleEvent:withHost:andServer:timestamp:identifier:isClear:
|
||||
* to pass a message to an array of destinations.
|
||||
* The message is actually appended to any cached messages for those
|
||||
* destinations ... and the cache is periodically flushed.
|
||||
*/
|
||||
- (void) mail: (NSMutableDictionary*)m to: (NSArray*)destinations;
|
||||
- (void) mail: (NSMutableDictionary*)m
|
||||
identifier: (NSString*)identifier
|
||||
isClear: (BOOL)isClear
|
||||
to: (NSArray*)destinations;
|
||||
|
||||
/** Calls -mail:identifier:isClear:to: with a nil identifier.
|
||||
*/
|
||||
- (void) mail: (NSMutableDictionary*)m
|
||||
to: (NSArray*)destinations;
|
||||
|
||||
/** Cache a copy of the Rules with modifications to store information
|
||||
* so we don't need to regenerate it every time we check a message.
|
||||
*/
|
||||
- (BOOL) setRules: (NSArray*)ra;
|
||||
|
||||
/** Called by -handleEvent:withHost:andServer:timestamp:immediate:
|
||||
/** Called by -handleEvent:withHost:andServer:timestamp:identifier:isClear:
|
||||
* to pass a message to an array of destinations.
|
||||
* The message replaces any cached messages for those
|
||||
* destinations (and has a count of the lost messages noted) ... and
|
||||
* the cache is periodically flushed.
|
||||
*/
|
||||
- (void) sms: (NSMutableDictionary*)m
|
||||
identifier: (NSString*)identifier
|
||||
isClear: (BOOL)isClear
|
||||
to: (NSArray*)destinations;
|
||||
|
||||
/** Calls -sms:identifier:isClear:to: with a nil identifier.
|
||||
*/
|
||||
- (void) sms: (NSMutableDictionary*)m to: (NSArray*)destinations;
|
||||
|
||||
/** Responsible for the periodic calling of -flushEmail and -flushSms
|
||||
|
|
52
EcAlerter.m
52
EcAlerter.m
|
@ -359,8 +359,13 @@ replaceFields(NSDictionary *fields)
|
|||
withHost: (NSString*)hostName
|
||||
andServer: (NSString*)serverName
|
||||
timestamp: (NSString*)timestamp
|
||||
immediate: (BOOL)immediate
|
||||
identifier: (NSString*)identifier
|
||||
isClear: (BOOL)isClear
|
||||
{
|
||||
if (nil == identifier)
|
||||
{
|
||||
isClear = NO;
|
||||
}
|
||||
NS_DURING
|
||||
{
|
||||
NSUInteger i;
|
||||
|
@ -368,7 +373,7 @@ replaceFields(NSDictionary *fields)
|
|||
NSMutableDictionary *m;
|
||||
|
||||
|
||||
if (YES == immediate)
|
||||
if (nil != identifier)
|
||||
{
|
||||
type = @"Alert";
|
||||
}
|
||||
|
@ -470,8 +475,7 @@ replaceFields(NSDictionary *fields)
|
|||
s = @"{Message}";
|
||||
}
|
||||
[m setObject: s forKey: @"Replacement"];
|
||||
|
||||
[self log: m to: o];
|
||||
[self log: m identifier: identifier isClear: isClear to: o];
|
||||
}
|
||||
}
|
||||
NS_HANDLER
|
||||
|
@ -511,8 +515,7 @@ replaceFields(NSDictionary *fields)
|
|||
s = @"{Server}({Host}): {Timestamp} {Type} - {Message}";
|
||||
}
|
||||
[m setObject: s forKey: @"Replacement"];
|
||||
|
||||
[self mail: m to: o];
|
||||
[self mail: m identifier: identifier isClear: isClear to: o];
|
||||
}
|
||||
}
|
||||
NS_HANDLER
|
||||
|
@ -546,8 +549,7 @@ replaceFields(NSDictionary *fields)
|
|||
s = @"{Server}({Host}):{Timestamp} {Type}-{Message}";
|
||||
}
|
||||
[m setObject: s forKey: @"Replacement"];
|
||||
|
||||
[self sms: m to: o];
|
||||
[self sms: m identifier: identifier isClear: isClear to: o];
|
||||
}
|
||||
}
|
||||
NS_HANDLER
|
||||
|
@ -658,7 +660,8 @@ replaceFields(NSDictionary *fields)
|
|||
withHost: hostName
|
||||
andServer: serverName
|
||||
timestamp: timestamp
|
||||
immediate: immediate];
|
||||
identifier: (YES == immediate) ? (id)@"" : (id)nil
|
||||
isClear: NO];
|
||||
}
|
||||
}
|
||||
NS_HANDLER
|
||||
|
@ -687,7 +690,10 @@ replaceFields(NSDictionary *fields)
|
|||
return self;
|
||||
}
|
||||
|
||||
- (void) log: (NSMutableDictionary*)m to: (NSArray*)destinations
|
||||
- (void) log: (NSMutableDictionary*)m
|
||||
identifier: (NSString*)identifier
|
||||
isClear: (BOOL)isClear
|
||||
to: (NSArray*)destinations
|
||||
{
|
||||
NSEnumerator *e = [destinations objectEnumerator];
|
||||
NSString *d;
|
||||
|
@ -703,7 +709,15 @@ replaceFields(NSDictionary *fields)
|
|||
}
|
||||
}
|
||||
|
||||
- (void) mail: (NSMutableDictionary*)m to: (NSArray*)destinations
|
||||
- (void) log: (NSMutableDictionary*)m to: (NSArray*)destinations
|
||||
{
|
||||
[self log: m identifier: nil isClear: NO to: destinations];
|
||||
}
|
||||
|
||||
- (void) mail: (NSMutableDictionary*)m
|
||||
identifier: (NSString*)identifier
|
||||
isClear: (BOOL)isClear
|
||||
to: (NSArray*)destinations
|
||||
{
|
||||
NSEnumerator *e = [destinations objectEnumerator];
|
||||
NSString *d;
|
||||
|
@ -767,7 +781,16 @@ replaceFields(NSDictionary *fields)
|
|||
}
|
||||
}
|
||||
|
||||
- (void) sms: (NSMutableDictionary*)m to: (NSArray*)destinations
|
||||
- (void) mail: (NSMutableDictionary*)m to: (NSArray*)destinations
|
||||
{
|
||||
[self mail: m identifier: nil isClear: NO to: destinations];
|
||||
}
|
||||
|
||||
|
||||
- (void) sms: (NSMutableDictionary*)m
|
||||
identifier: (NSString*)identifier
|
||||
isClear: (BOOL)isClear
|
||||
to: (NSArray*)destinations
|
||||
{
|
||||
NSEnumerator *e = [destinations objectEnumerator];
|
||||
NSString *d;
|
||||
|
@ -818,6 +841,11 @@ replaceFields(NSDictionary *fields)
|
|||
}
|
||||
}
|
||||
|
||||
- (void) sms: (NSMutableDictionary*)m to: (NSArray*)destinations
|
||||
{
|
||||
[self sms: m identifier: nil isClear: NO to: destinations];
|
||||
}
|
||||
|
||||
- (void) timeout: (NSTimer*)t
|
||||
{
|
||||
[self flushSms];
|
||||
|
|
Loading…
Reference in a new issue