File: Stopwatch.cc

package info (click to toggle)
eclipse-titan 8.2.0-1
  • links: PTS
  • area: main
  • in suites: bookworm, sid
  • size: 103,544 kB
  • sloc: cpp: 271,008; ansic: 33,683; yacc: 23,419; makefile: 15,483; lex: 9,204; java: 4,848; perl: 4,555; sh: 2,242; xml: 1,378; javascript: 85; awk: 48; php: 32; python: 13
file content (40 lines) | stat: -rw-r--r-- 1,071 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-2021 Ericsson Telecom AB
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.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);
}