diff options
Diffstat (limited to 'cpp/src/IceUtil/StopWatch.h')
-rw-r--r-- | cpp/src/IceUtil/StopWatch.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/cpp/src/IceUtil/StopWatch.h b/cpp/src/IceUtil/StopWatch.h new file mode 100644 index 00000000000..9fe72180e6b --- /dev/null +++ b/cpp/src/IceUtil/StopWatch.h @@ -0,0 +1,54 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_UTIL_STOPWATCH_H +#define ICE_UTIL_STOPWATCH_H + +#include <IceUtil/Time.h> + +namespace IceUtilInternal +{ + +class StopWatch +{ +public: + + StopWatch() { } + + void start() + { + _s = IceUtil::Time::now(IceUtil::Time::Monotonic); + } + + IceUtil::Int64 stop() + { + assert(isStarted()); + IceUtil::Int64 d = (IceUtil::Time::now(IceUtil::Time::Monotonic) - _s).toMicroSeconds(); + _s = IceUtil::Time(); + return d; + } + + bool isStarted() const + { + return _s != IceUtil::Time(); + } + + IceUtil::Int64 delay() + { + return (IceUtil::Time::now(IceUtil::Time::Monotonic) - _s).toMicroSeconds(); + } + +private: + + IceUtil::Time _s; +}; + +} // End namespace IceUtilInternal + +#endif |