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.

72 lines
1.6 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.
*/
#ifndef _CONTROLLER_EVENTS_H_
#define _CONTROLLER_EVENTS_H_
#include <string>
#include <map>
#include "pin.H"
using namespace std;
namespace CONTROLLER
{
typedef enum{
EVENT_INVALID = 0,
EVENT_PRECOND,
EVENT_START,
EVENT_STOP,
EVENT_THREADID,
EVENT_WARMUP_START,
EVENT_WARMUP_STOP,
EVENT_PROLOG_START,
EVENT_PROLOG_STOP,
EVENT_EPILOG_START,
EVENT_EPILOG_STOP,
EVENT_STATS_RESET,
EVENT_STATS_EMIT,
EVENT_STATS_EMIT_RESET,
EVENT_USER_0,
EVENT_USER_1,
EVENT_USER_2,
EVENT_USER_3,
EVENT_USER_4,
EVENT_USER_5,
EVENT_USER_6,
EVENT_USER_7,
EVENT_USER_8,
EVENT_USER_9
}EVENT_TYPE;
//the events manager can be created only by the control object
class CONTROLLER_EVENTS
{
public:
EVENT_TYPE AddEvent(const string& event_name);
string IDToString(EVENT_TYPE ev);
EVENT_TYPE EventStringToType(const string& event_name);
private:
friend class CONTROL_MANAGER;
CONTROLLER_EVENTS();
map<string,EVENT_TYPE> _events;
static const EVENT_TYPE _max_user_ev = EVENT_USER_9;
};//class
}//namespace
#endif