ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
atomic_output Class Reference

#include <PileUpMTAlg.h>

Collaboration diagram for atomic_output:

Public Member Functions

 atomic_output ()=default
 
bool init (const std::string &filename)
 
 ~atomic_output ()
 
void print (const std::string &str)
 

Private Attributes

std::FILE * m_file {}
 
std::mutex m_mtx {}
 

Detailed Description

Definition at line 33 of file PileUpMTAlg.h.

Constructor & Destructor Documentation

◆ atomic_output()

atomic_output::atomic_output ( )
default

◆ ~atomic_output()

atomic_output::~atomic_output ( )
inline

Definition at line 56 of file PileUpMTAlg.h.

56  {
57  std::lock_guard lck{m_mtx};
58  if (m_file != nullptr) {
59  std::fclose(m_file);
60  m_file = nullptr;
61  }
62  }

Member Function Documentation

◆ init()

bool atomic_output::init ( const std::string &  filename)
inline

Definition at line 40 of file PileUpMTAlg.h.

40  {
41  using namespace std::chrono;
42  std::lock_guard lck{m_mtx};
43  if (m_file != nullptr) {
44  return true;
45  }
46  m_file = std::fopen(filename.c_str(), "a");
47  if (m_file == nullptr) {
48  return false;
49  }
50  auto time = system_clock::now();
51  auto header = std::format("FILE CREATED ON {:%Y-%m-%d} at {:%H:%M:%S %Z}\n",
52  time, time);
53  std::fputs(header.c_str(), m_file);
54  return true;
55  }

◆ print()

void atomic_output::print ( const std::string &  str)
inline

Definition at line 64 of file PileUpMTAlg.h.

64  {
65  std::lock_guard lck{m_mtx};
66  std::fputs(str.c_str(), m_file);
67  std::fflush(m_file);
68  }

Member Data Documentation

◆ m_file

std::FILE* atomic_output::m_file {}
private

Definition at line 35 of file PileUpMTAlg.h.

◆ m_mtx

std::mutex atomic_output::m_mtx {}
private

Definition at line 36 of file PileUpMTAlg.h.


The documentation for this class was generated from the following file:
atomic_output::m_file
std::FILE * m_file
Definition: PileUpMTAlg.h:35
header
Definition: hcg.cxx:526
vtune_athena.format
format
Definition: vtune_athena.py:14
atomic_output::m_mtx
std::mutex m_mtx
Definition: PileUpMTAlg.h:36
python.handimod.now
now
Definition: handimod.py:674
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:23
str
Definition: BTagTrackIpAccessor.cxx:11