summaryrefslogtreecommitdiff
path: root/src/util/timetaker.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2012-06-17 01:29:13 +0300
committerPerttu Ahola <celeron55@gmail.com>2012-06-17 01:29:13 +0300
commit1bc37d576ce790c1169c5f9996be7bbc8026db2c (patch)
tree0a6e0c448a9fa5366609d1ffda7238d78d96f7ce /src/util/timetaker.cpp
parentd159591b9a01eb4385276497ba8c5fa4b30ab7de (diff)
downloadminetest-1bc37d576ce790c1169c5f9996be7bbc8026db2c.tar.gz
minetest-1bc37d576ce790c1169c5f9996be7bbc8026db2c.tar.bz2
minetest-1bc37d576ce790c1169c5f9996be7bbc8026db2c.zip
Initially split utility.h to multiple files in util/
Diffstat (limited to 'src/util/timetaker.cpp')
-rw-r--r--src/util/timetaker.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/util/timetaker.cpp b/src/util/timetaker.cpp
new file mode 100644
index 000000000..9cc87f3ea
--- /dev/null
+++ b/src/util/timetaker.cpp
@@ -0,0 +1,61 @@
+/*
+Minetest-c55
+Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "timetaker.h"
+
+#include "gettime.h"
+#include "log.h"
+#include <ostream>
+
+TimeTaker::TimeTaker(const char *name, u32 *result)
+{
+ m_name = name;
+ m_result = result;
+ m_running = true;
+ m_time1 = getTimeMs();
+}
+
+u32 TimeTaker::stop(bool quiet)
+{
+ if(m_running)
+ {
+ u32 time2 = getTimeMs();
+ u32 dtime = time2 - m_time1;
+ if(m_result != NULL)
+ {
+ (*m_result) += dtime;
+ }
+ else
+ {
+ if(quiet == false)
+ infostream<<m_name<<" took "<<dtime<<"ms"<<std::endl;
+ }
+ m_running = false;
+ return dtime;
+ }
+ return 0;
+}
+
+u32 TimeTaker::getTime()
+{
+ u32 time2 = getTimeMs();
+ u32 dtime = time2 - m_time1;
+ return dtime;
+}
+