/**************************************************************************** * * * Project 64 - A Nintendo 64 emulator. * * http://www.pj64-emu.com/ * * Copyright (C) 2012 Project64. All rights reserved. * * * * License: * * GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html * * * ****************************************************************************/ #pragma once typedef std::map PROFILE_ENRTIES; typedef PROFILE_ENRTIES::iterator PROFILE_ENRTY; typedef PROFILE_ENRTIES::value_type PROFILE_VALUE; class CProfiling { public: CProfiling (void); //recording timing against current timer, returns the address of the timer stoped SPECIAL_TIMERS StartTimer ( SPECIAL_TIMERS Address ); SPECIAL_TIMERS StopTimer ( void ); //Display the CPU Usage void ShowCPU_Usage ( void ); //Reset all the counters back to 0 void ResetCounters ( void ); //Generate a log file with the current results, this will also reset the counters void GenerateLog ( void ); private: CProfiling(const CProfiling&); // Disable copy constructor CProfiling& operator=(const CProfiling&); // Disable assignment SPECIAL_TIMERS m_CurrentTimerAddr; DWORD m_CurrentDisplayCount; DWORD m_StartTimeHi, m_StartTimeLo; //The Current Timer start time PROFILE_ENRTIES m_Entries; };