⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eventhistory.cpp

📁 用data miming技术进行false prediction
💻 CPP
字号:
#include "EventHistory.h"

bool eventLesser(Event* e1, Event* e2) {
    return *e1 < *e2;
}

EventHistory::EventHistory() {
    this->eventList = new vector<Event*>;
    lastFailTime = 0;
    secondLastFailTime = 0;
    //this->printStatsList();
    //float prob = this->getProbabilityForTBF(2500000);
    //cout << prob << endl;
};

EventHistory::~EventHistory() {
    if (eventList != 0) {
        vector<Event*>::iterator itr;
        for (itr = eventList->begin(); itr != eventList->end(); itr++) {
            delete *itr;
        }
        delete eventList;
    }
};

vector<Event*>* EventHistory::getEventList() const {
    return eventList;
};

void EventHistory::printEventList() {
    if (eventList != 0) {
        vector<Event*>::iterator itr;
        for (itr = eventList->begin(); itr != eventList->end(); itr++) {
            cout << *(*itr) << endl;
        }
    }
}

void EventHistory::addEvent(Event* event) {
    if ( (event->getSeverity() == "FATAL") || (event->getSeverity() == "FAILURE") ) {
        //cout << *event << endl;
        //char ch; cin.get(ch);
        secondLastFailTime = lastFailTime;
        lastFailTime = event->getEventTime();
    } else {
        eventList->push_back(event);

        //vector<Event*>::iterator iter;
        //iter = unique(eventList->begin(), eventList->end());
        //eventList->erase(iter, eventList->end());
        //sort(eventList->begin(), eventList->end(), eventLesser);
    }
}

void EventHistory::flushEvents(int historyStartTime) {
    if ( (eventList != 0) && (eventList->size() > 0) ) {
        vector<Event*>::iterator itr = eventList->begin();
        Event* event = *itr;
        int eventTime = event->getEventTime();

        while (eventTime < historyStartTime) {
            //cout << "before erase: " << event->getEventTime() << endl;

            eventList->erase(itr);
            //cout << "after erase size: " << eventList->size() << endl;

            if ( (eventList == 0) || (eventList->size() == 0) ) {
                return;
            }

            itr = eventList->begin();
            event = *itr;
            eventTime = event->getEventTime();
            //if (event == 0) return;
        }
    }
    return;
}

int EventHistory::getEventListSize() const {
    if(eventList !=0) {
        return eventList->size();
    } else {
        return 0;
    }
}

int EventHistory::getLastFailTime() const {
    return lastFailTime;
}

int EventHistory::getSecondLastFailTime() const {
    return secondLastFailTime;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -