File: Stopwatch.cc

package info (click to toggle)
eclipse-titan 6.1.0-1
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 79,084 kB
  • ctags: 29,092
  • sloc: cpp: 210,764; ansic: 44,862; yacc: 21,034; sh: 12,594; makefile: 12,225; lex: 8,972; xml: 5,348; java: 4,849; perl: 3,780; python: 2,834; php: 175
file content (40 lines) | stat: -rw-r--r-- 1,054 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/******************************************************************************
 * Copyright (c) 2000-2016 Ericsson Telecom AB
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *   Balasko, Jeno
 *   Raduly, Csaba
 *
 ******************************************************************************/
#include "Stopwatch.hh"
#include "error.h"
#include <stdio.h>

Stopwatch::Stopwatch(const char *name)
: tv_start()
, my_name(name)
{
  gettimeofday(&tv_start, 0);
}

Stopwatch::~Stopwatch()
{
  struct timeval tv_end;
  gettimeofday(&tv_end, 0);

  struct timeval tv_diff = {
    tv_end.tv_sec  - tv_start.tv_sec,
    tv_end.tv_usec - tv_start.tv_usec
  };
  if (tv_diff.tv_usec < 0) {
    --tv_diff.tv_sec;
    tv_diff.tv_usec += 1000000;
  }

  NOTIFY("%s took %ld.%06ld sec", my_name,
    (long)tv_diff.tv_sec, (long)tv_diff.tv_usec);
}