45 lines
863 B
C++
45 lines
863 B
C++
|
#include "EventCorrelation.h"
|
||
|
|
||
|
EventCorrelation::EventCorrelation(uint32_t timeout) :
|
||
|
eventPending(false) {
|
||
|
correlationTimer.setTimeout(timeout);
|
||
|
}
|
||
|
|
||
|
EventCorrelation::~EventCorrelation() {
|
||
|
}
|
||
|
|
||
|
EventCorrelation::State EventCorrelation::doesEventCorrelate() {
|
||
|
if (correlationTimer.isBusy()) {
|
||
|
eventPending = false;
|
||
|
return CORRELATED;
|
||
|
} else {
|
||
|
if (eventPending) {
|
||
|
return ALREADY_STARTED;
|
||
|
} else {
|
||
|
eventPending = true;
|
||
|
correlationTimer.resetTimer();
|
||
|
return CORRELATION_STARTED;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bool EventCorrelation::isEventPending() {
|
||
|
if (eventPending) {
|
||
|
eventPending = false;
|
||
|
return true;
|
||
|
} else {
|
||
|
correlationTimer.resetTimer();
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bool EventCorrelation::hasPendingEventTimedOut() {
|
||
|
if (correlationTimer.hasTimedOut()) {
|
||
|
bool temp = eventPending;
|
||
|
eventPending = false;
|
||
|
return temp;
|
||
|
} else {
|
||
|
return false;
|
||
|
}
|
||
|
}
|