Back to index

unity  6.0.0
ElapsedTimeMonitor.cpp
Go to the documentation of this file.
00001 // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*-
00002 /*
00003 * Copyright (C) 2011 Canonical Ltd
00004 *
00005 * This program is free software: you can redistribute it and/or modify
00006 * it under the terms of the GNU General Public License version 3 as
00007 * published by the Free Software Foundation.
00008 *
00009 * This program is distributed in the hope that it will be useful,
00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 * GNU General Public License for more details.
00013 *
00014 * You should have received a copy of the GNU General Public License
00015 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00016 *
00017 * Authored by: Alex Launi <alex.launi@canonical.com>
00018 */
00019 
00020 #include <UnityCore/Variant.h>
00021 
00022 #include "ElapsedTimeMonitor.h"
00023 #include "TimeUtil.h"
00024 
00025 namespace unity{
00026 namespace performance {
00027 
00028 std::string ElapsedTimeMonitor::GetName() const
00029 {
00030   return "ElapsedTimeMonitor";
00031 }
00032 
00033 void ElapsedTimeMonitor::StartMonitor()
00034 {
00035   clock_gettime(CLOCK_MONOTONIC, &_start);
00036 }
00037 
00038 void ElapsedTimeMonitor::StopMonitor(GVariantBuilder* builder)
00039 {
00040   struct timespec current;
00041   clock_gettime(CLOCK_MONOTONIC, &current);
00042   int diff = TimeUtil::TimeDelta(&current, &_start);
00043 
00044   variant::BuilderWrapper(builder)
00045     .add("elapsed-time", diff);
00046 }
00047 
00048 }
00049 }