/*
* clock - clock resource for zavai
*
- * Copyright (C) 2009 Enrico Zini <enrico@enricozini.org>
+ * Copyright (C) 2009--2010 Enrico Zini <enrico@enricozini.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
public class AlarmTriggerQueue : zavai.Service
{
protected List<AlarmTriggerInfo> queue;
- protected int seq;
public signal void triggered(AlarmTriggerInfo info);
public signal void acked(AlarmTriggerInfo info);
public AlarmTriggerQueue()
{
queue = new List<AlarmTriggerInfo>();
- seq = 0;
}
public uint enqueue_trigger(AlarmTriggerInfo info)
{
- // Generate a new sequence number
- if (++seq == 0) ++seq;
- info.id = seq;
+ // Reuse IDs from the associated logger object
+ info.id = zavai.log.log.start("alarm", "Alarm " + info.label);
queue.append(info);
if (queue.data.id == info.id)
triggered(queue.data);
{
info.acked = true;
acked(info);
+ zavai.log.log.add(info.id, "alarm acknowledged");
+ zavai.log.log.end(info.id);
}
done_with_first();
}
{
info.canceled = true;
canceled(info);
+ zavai.log.log.add(info.id, "alarm canceled");
+ zavai.log.log.end(info.id);
}
done_with_first();
}