Classes | |
class | AlarmInfo |
class | AlarmsMapRunnable |
Public Member Functions | |
AlarmsMap (ThreadFactory threadFactory, Logger logger) | |
Collection< String > | getActiveAlarms () |
boolean | raise (String alarmID) |
boolean | clear (String alarmID) |
void | start () |
void | shutdown () |
int | size () |
boolean | containsKey (Object key) |
void | clear () |
AlarmInfo | get (Object key) |
Static Public Attributes | |
static final int | ALARM_ACTIVITY_TIME = 30 |
Protected Attributes | |
final Map< String, AlarmInfo > | alarms = new ConcurrentHashMap<String, AlarmsMap.AlarmInfo>() |
The map of active and inactive alarms.
Alarms that are not updated after ALARM_ACTIVITY_TIME are removed from the map so that they will be sent again to the alarm service.
The class is thread safe i.e. the methods can be called without any further locking.
AlarmsMap does not need any locking because the map contains immutable AlarmInfo objects and the map itself is implemented by a ConcurrentHashMap.
alma.acs.alarmsystem.source.AlarmsMap.AlarmsMap | ( | ThreadFactory | threadFactory, | |
Logger | logger | |||
) |
Constructor
threadFactory | The thread factory to schedule the timer loop | |
logger | The logger |
References alma.acs.alarmsystem.source.AlarmsMap.ALARM_ACTIVITY_TIME.
boolean alma.acs.alarmsystem.source.AlarmsMap.clear | ( | String | alarmID | ) |
An alarms has been cleared and must be added to the map.
alarmID | The ID of the alarm |
true
if the alarm with the give ID was already present in the list and it was terminated; false
otherwise. References alma.acs.alarmsystem.source.AlarmsMap.AlarmInfo.active, and alma.acs.alarmsystem.source.AlarmsMap.alarms.
void alma.acs.alarmsystem.source.AlarmsMap.clear | ( | ) |
Empty the map
References alma.acs.alarmsystem.source.AlarmsMap.alarms.
boolean alma.acs.alarmsystem.source.AlarmsMap.containsKey | ( | Object | key | ) |
key | The key to look for in the map |
true
if the map contains an item with the given ket References alma.acs.alarmsystem.source.AlarmsMap.alarms.
AlarmInfo alma.acs.alarmsystem.source.AlarmsMap.get | ( | Object | key | ) |
key | The key to look for |
References alma.acs.alarmsystem.source.AlarmsMap.alarms.
Collection<String> alma.acs.alarmsystem.source.AlarmsMap.getActiveAlarms | ( | ) |
Return the active alarms in the map
References alma.acs.alarmsystem.source.AlarmsMap.alarms.
Referenced by alma.acs.alarmsystem.source.AlarmSourceImpl.terminateAllAlarms().
boolean alma.acs.alarmsystem.source.AlarmsMap.raise | ( | String | alarmID | ) |
An alarms has been raised and must be added to the map.
alarmID | The ID of the alarm |
true
if the alarm with the give ID was already present in the list and it was active; false
otherwise. References alma.acs.alarmsystem.source.AlarmsMap.AlarmInfo.active, and alma.acs.alarmsystem.source.AlarmsMap.alarms.
Referenced by alma.acs.alarmsystem.source.AlarmSourceImpl.raiseAlarm().
void alma.acs.alarmsystem.source.AlarmsMap.shutdown | ( | ) |
Shutdown the thread a frees the resources
References alma.acs.alarmsystem.source.AlarmsMap.ALARM_ACTIVITY_TIME, alma.acs.alarmsystem.source.AlarmsMap.alarms, and alma.acs.concurrent.ThreadLoopRunner.shutdown().
Referenced by alma.acs.alarmsystem.source.AlarmSourceImpl.tearDown().
int alma.acs.alarmsystem.source.AlarmsMap.size | ( | ) |
The size of the map
References alma.acs.alarmsystem.source.AlarmsMap.alarms.
void alma.acs.alarmsystem.source.AlarmsMap.start | ( | ) |
Start the thread to delete the oldest alarms
References alma.acs.concurrent.ThreadLoopRunner.runLoop(), and alma.acs.concurrent.ThreadLoopRunner.setDelayMode().
Referenced by alma.acs.alarmsystem.source.AlarmSourceImpl.start().
final int alma.acs.alarmsystem.source.AlarmsMap.ALARM_ACTIVITY_TIME = 30 [static] |
The alarms that have no activity after the following time interval are removed from the map.
In practice, it means that an alarm with the same state will be sent again if it arrives after ALARM_ACTIVITY_TIME
seconds.
Referenced by alma.acs.alarmsystem.source.AlarmsMap.AlarmsMap(), alma.acs.alarmsystem.source.AlarmsMap.AlarmsMapRunnable.run(), and alma.acs.alarmsystem.source.AlarmsMap.shutdown().
final Map<String, AlarmInfo> alma.acs.alarmsystem.source.AlarmsMap.alarms = new ConcurrentHashMap<String, AlarmsMap.AlarmInfo>() [protected] |
The map of alarms.
The key is the alarm ID i.e. FF:FM:FC. The value is an AlarmInfo with boolean set to true
if the alarm has been activated, false
otherwise.
Referenced by alma.acs.alarmsystem.source.AlarmsMap.clear(), alma.acs.alarmsystem.source.AlarmsMap.containsKey(), alma.acs.alarmsystem.source.AlarmsMap.get(), alma.acs.alarmsystem.source.AlarmsMap.getActiveAlarms(), alma.acs.alarmsystem.source.AlarmsMap.raise(), alma.acs.alarmsystem.source.AlarmsMap.AlarmsMapRunnable.run(), alma.acs.alarmsystem.source.AlarmsMap.shutdown(), and alma.acs.alarmsystem.source.AlarmsMap.size().