feat:添加报警事件数据条件过滤模块
This commit is contained in:
parent
b22eedf228
commit
8a524a5e0d
|
|
@ -22,8 +22,11 @@ public:
|
||||||
|
|
||||||
bool matches(const EventData& event);
|
bool matches(const EventData& event);
|
||||||
void clear();
|
void clear();
|
||||||
|
QVector<EventData> apply(const QVector<EventData>& events);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
bool isEmpty();
|
||||||
|
|
||||||
QDateTime m_startTime;
|
QDateTime m_startTime;
|
||||||
QDateTime m_endTime;
|
QDateTime m_endTime;
|
||||||
QString m_station;
|
QString m_station;
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,35 @@ void AlarmEventDataFilter::clear()
|
||||||
m_status = -1;
|
m_status = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QVector<EventData> AlarmEventDataFilter::apply(const QVector<EventData>& events)
|
||||||
|
{
|
||||||
|
if(isEmpty())
|
||||||
|
return events;
|
||||||
|
|
||||||
|
QVector<EventData> filteredEvents;
|
||||||
|
filteredEvents.reserve(events.size()); //分配好内存,防止后面执行append时造成的多次扩容开销
|
||||||
|
|
||||||
|
for(const EventData& event : events)
|
||||||
|
{
|
||||||
|
if(matches(event))
|
||||||
|
filteredEvents.append(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
return filteredEvents; //RVO + QT的隐式共享(QVector),不用担心开销
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AlarmEventDataFilter::isEmpty()
|
||||||
|
{
|
||||||
|
return !m_startTime.isValid() &&
|
||||||
|
!m_endTime.isValid() &&
|
||||||
|
m_station.isEmpty() &&
|
||||||
|
m_bay.isEmpty() &&
|
||||||
|
m_type == -1 &&
|
||||||
|
m_severity.isEmpty() &&
|
||||||
|
m_description.isEmpty() &&
|
||||||
|
m_status == -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///////------AlarmEventDataModel-----
|
///////------AlarmEventDataModel-----
|
||||||
AlarmEventDataModel::AlarmEventDataModel(QObject* parent)
|
AlarmEventDataModel::AlarmEventDataModel(QObject* parent)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue