From fd733201b82f39655488a286c89142f321ef9dc9 Mon Sep 17 00:00:00 2001 From: Sylvain Chiron Date: Sat, 1 Jul 2017 13:36:41 +0200 Subject: Updated libs from the Adaptagrams project: libavoid, libcola and libvspc; changed the code to match the new API Signed-off-by: Sylvain Chiron --- src/libavoid/timer.h | 74 +++++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 35 deletions(-) (limited to 'src/libavoid/timer.h') diff --git a/src/libavoid/timer.h b/src/libavoid/timer.h index 9cab6d7ff..17a07d5e8 100644 --- a/src/libavoid/timer.h +++ b/src/libavoid/timer.h @@ -3,7 +3,7 @@ * * libavoid - Fast, Incremental, Object-avoiding Line Router * - * Copyright (C) 2004-2008 Monash University + * Copyright (C) 2004-2013 Monash University * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -19,81 +19,85 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * Author(s): Michael Wybrow + * Author(s): Michael Wybrow */ -#ifndef PROFILE_H -#define PROFILE_H +#ifndef AVOID_TIMER_H +#define AVOID_TIMER_H #include namespace Avoid { +//#define AVOID_PROFILE -#ifdef NOTIMERS +#ifndef AVOID_PROFILE - #define register_timer(t) do {} while(0) - #define regstart_timer(t) do {} while(0) - #define start_timer() do {} while(0) - #define stop_timer() do {} while(0) + #define TIMER_START(r, t) do {} while(0) + #define TIMER_STOP(r) do {} while(0) + #define TIMER_VAR_ADD(r, n, v) do {} while(0) + #define TIMER_VAR_MAX(r, n, v) do {} while(0) #else - #define register_timer(t) router->timers.Register(t) - #define regstart_timer(t) router->timers.Register(t, timerStart) - #define start_timer() router->timers.Start() - #define stop_timer() router->timers.Stop() - -#endif + #define TIMER_START(r, t) r->timers.initialise(t); r->timers.start() + #define TIMER_STOP(r) r->timers.stop() + #define TIMER_VAR_ADD(r, n, v) r->timers.varIncrement(n, v); + #define TIMER_VAR_MAX(r, n, v) r->timers.varMax(n, v) typedef unsigned long long int bigclock_t; enum TimerIndex { - tmNon = 0, tmAdd, tmDel, tmMov, tmPth, - tmSev, tmOrthogGraph, tmOrthogRoute, tmOrthogCentre, tmOrthogNudge, + tmHyperedgeForest, + tmHyperedgeMTST, + tmHyperedgeImprove, + tmHyperedgeAlt, tmCount }; - static const bool timerStart = true; static const bool timerDelay = false; +static const size_t TIMER_VARIABLES_COUNT = 2; class Timer { public: Timer(); - void Register(const TimerIndex t, const bool start = timerDelay); - void Start(void); - void Stop(void); - void Reset(void); - void Print(TimerIndex, FILE *fp); - void PrintAll(FILE *fp); + void initialise(const TimerIndex t); + void start(void); + void stop(void); + void reset(void); + void varIncrement(size_t i, unsigned int val); + void varMax(size_t i, unsigned int val); + + void print(TimerIndex, FILE *fp); + void printAll(FILE *fp); + void printHyperedgePaper(FILE *fp); private: - clock_t cStart[tmCount]; - bigclock_t cTotal[tmCount]; - bigclock_t cPath[tmCount]; - int cTally[tmCount]; - int cPathTally[tmCount]; - clock_t cMax[tmCount]; - clock_t cPathMax[tmCount]; - - bool running; - long count; - TimerIndex type, lasttype; + clock_t m_start_time[tmCount]; + bigclock_t m_total_time[tmCount]; + int m_tally[tmCount]; + clock_t m_max_time[tmCount]; + unsigned int m_variables[tmCount][TIMER_VARIABLES_COUNT]; + + bool m_is_running; + TimerIndex m_type; + TimerIndex m_last_type; }; +#endif } -- cgit v1.2.3