OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
Timestamp.h
Go to the documentation of this file.
1 //
2 // Class Timestamp
3 //
4 // Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
5 // All rights reserved
6 //
7 // Implemented as part of the PhD thesis
8 // "Toward massively parallel multi-objective optimization with application to
9 // particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
10 //
11 // This file is part of OPAL.
12 //
13 // OPAL is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU General Public License as published by
15 // the Free Software Foundation, either version 3 of the License, or
16 // (at your option) any later version.
17 //
18 // You should have received a copy of the GNU General Public License
19 // along with OPAL. If not, see <https://www.gnu.org/licenses/>.
20 //
21 #ifndef __TIMESTAMP_H__
22 #define __TIMESTAMP_H__
23 
24 #include <sstream>
25 #include <ctime>
26 
28 
29 #include "mpi.h"
30 
31 class Timestamp : public TraceComponent {
32 
33 public:
34 
35 
37  : TraceComponent("Timestamp")
38  {}
39 
40  void execute(std::ostringstream &dump) {
41 
42  std::chrono::time_point<std::chrono::system_clock> now;
43  now = std::chrono::system_clock::now();
44  std::time_t now_time = std::chrono::system_clock::to_time_t(now);
45 
46  std::ostringstream timestamp;
47  timestamp << std::ctime(&now_time);
48 
49  prepend(dump, timestamp);
50  }
51 
52  virtual ~Timestamp()
53  {}
54 
55 };
56 
57 #endif
void prepend(std::ostringstream &dump, std::ostringstream &prepender)
virtual ~Timestamp()
Definition: Timestamp.h:52
void execute(std::ostringstream &dump)
Definition: Timestamp.h:40
Timestamp()
Definition: Timestamp.h:36