-
Notifications
You must be signed in to change notification settings - Fork 10
/
tntblast_timer.cpp
76 lines (64 loc) · 3.42 KB
/
tntblast_timer.cpp
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// ThermonucleotideBLAST
//
// Copyright (c) 2007, Los Alamos National Security, LLC
// All rights reserved.
//
// Copyright 2007. Los Alamos National Security, LLC. This software was produced under U.S. Government
// contract DE-AC52-06NA25396 for Los Alamos National Laboratory (LANL), which is operated by Los Alamos
// National Security, LLC for the U.S. Department of Energy. The U.S. Government has rights to use,
// reproduce, and distribute this software. NEITHER THE GOVERNMENT NOR LOS ALAMOS NATIONAL SECURITY,
// LLC MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE.
// If software is modified to produce derivative works, such modified software should be clearly marked,
// so as not to confuse it with the version available from LANL.
//
// Additionally, redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright notice, this list of conditions
// and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
// and the following disclaimer in the documentation and/or other materials provided with the distribution.
// * Neither the name of Los Alamos National Security, LLC, Los Alamos National Laboratory, LANL,
// the U.S. Government, nor the names of its contributors may be used to endorse or promote products
// derived from this software without specific prior written permission.
//
//
// THIS SOFTWARE IS PROVIDED BY LOS ALAMOS NATIONAL SECURITY, LLC AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL LOS ALAMOS NATIONAL SECURITY, LLC
// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifdef WIN32
// for MM timers (you'll need WINMM.LIB)
#include <windows.h>
// This handy pragma allows us to add the Windows
// multi-media library to the list of files to
// be passed to the linker. Users do *not* need to
// add this library to the project settings!
#pragma comment(lib, "winmm.lib")
# else
// Works for linux and OSX
#include <sys/time.h>
#endif // WIN32
#include "tntblast_timer.h"
#include <stdlib.h>
tnt_time get_time()
{
#ifdef WIN32
// The accuracy depends upon the OS that you're running
// Win95 has accuracy to 1 ms, while WinNT will average about
// 5 ms or more (fine for our purposes). If you're running NT you can
// set the accuracy to a finer value. See the documentation.
// (However, this runs fine under NT as it is...)
return tnt_time(0, float( timeGetTime() ), 0);
#else
// Unfortunately, use of gettimeofday() is most likely
// platform specific!
timeval timer;
gettimeofday(&timer, NULL);
return tnt_time(timer.tv_sec, 0, timer.tv_usec);
#endif // WIN32
}