You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.2 KiB
71 lines
2.2 KiB
/*
|
|
* Copyright 2002-2019 Intel Corporation.
|
|
*
|
|
* This software is provided to you as Sample Source Code as defined in the accompanying
|
|
* End User License Agreement for the Intel(R) Software Development Products ("Agreement")
|
|
* section 1.L.
|
|
*
|
|
* This software and the related documents are provided as is, with no express or implied
|
|
* warranties, other than those that are expressly stated in the License.
|
|
*/
|
|
|
|
|
|
#include <sstream>
|
|
#include "controller_events.H"
|
|
|
|
using namespace CONTROLLER;
|
|
|
|
/// @cond INTERNAL_DOXYGEN
|
|
CONTROLLER_EVENTS::CONTROLLER_EVENTS(){
|
|
_events["invalid"] = EVENT_INVALID;
|
|
_events["precond"] = EVENT_PRECOND;
|
|
_events["start"] = EVENT_START;
|
|
_events["stop"] = EVENT_STOP;
|
|
_events["threadid"] = EVENT_THREADID;
|
|
_events["warmup-start"] = EVENT_WARMUP_START;
|
|
_events["warmup-stop"] = EVENT_WARMUP_STOP;
|
|
_events["prolog-start"] = EVENT_PROLOG_START;
|
|
_events["prolog-stop"] = EVENT_PROLOG_STOP;
|
|
_events["epilog-start"] = EVENT_EPILOG_START;
|
|
_events["epilog-stop"] = EVENT_EPILOG_STOP;
|
|
_events["stats-emit"] = EVENT_STATS_EMIT;
|
|
_events["stats-reset"] = EVENT_STATS_RESET;
|
|
//This event emits the stats for the tid who received the event, and resets
|
|
//the stats immediately.
|
|
_events["stats-emit-reset"] = EVENT_STATS_EMIT_RESET;
|
|
}
|
|
|
|
EVENT_TYPE CONTROLLER_EVENTS::AddEvent(const string& event_name){
|
|
map<string,EVENT_TYPE>::iterator iter = _events.find(event_name);
|
|
if (iter != _events.end()){
|
|
ASSERT(FALSE,"event: " + event_name + " already exists");
|
|
}
|
|
|
|
ASSERT(_events.size() < _max_user_ev, "not enough events");
|
|
EVENT_TYPE ev = static_cast<EVENT_TYPE>(_events.size());
|
|
_events[event_name] = ev;
|
|
return ev;
|
|
|
|
}
|
|
|
|
string CONTROLLER_EVENTS::IDToString(EVENT_TYPE id){
|
|
map<string,EVENT_TYPE>::iterator iter = _events.begin();
|
|
for (;iter != _events.end(); iter++){
|
|
if (iter->second == id){
|
|
return iter->first;
|
|
}
|
|
}
|
|
|
|
return "invalid";
|
|
|
|
}
|
|
|
|
EVENT_TYPE CONTROLLER_EVENTS::EventStringToType(const string& event_name){
|
|
map<string,EVENT_TYPE>::iterator iter = _events.find(event_name);
|
|
if (iter == _events.end()){
|
|
ASSERT(FALSE,"Unsupported event " + event_name);
|
|
}
|
|
return iter->second;
|
|
}
|
|
/// @endcond
|