ATLAS Offline Software
Loading...
Searching...
No Matches
atomic_output Class Reference

#include <PileUpMTAlg.h>

Collaboration diagram for atomic_output:

Public Member Functions

 atomic_output ()=default
 atomic_output (const atomic_output &)=delete
atomic_outputoperator= (const atomic_output &)=delete
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() [1/2]

atomic_output::atomic_output ( )
default

◆ atomic_output() [2/2]

atomic_output::atomic_output ( const atomic_output & )
delete

◆ ~atomic_output()

atomic_output::~atomic_output ( )
inline

Definition at line 59 of file PileUpMTAlg.h.

59 {
60 std::lock_guard lck{m_mtx};
61 if (m_file != nullptr) {
62 std::fclose(m_file);
63 m_file = nullptr;
64 }
65 }
std::FILE * m_file
Definition PileUpMTAlg.h:35
std::mutex m_mtx
Definition PileUpMTAlg.h:36

Member Function Documentation

◆ init()

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

Definition at line 43 of file PileUpMTAlg.h.

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

◆ operator=()

atomic_output & atomic_output::operator= ( const atomic_output & )
delete

◆ print()

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

Definition at line 67 of file PileUpMTAlg.h.

67 {
68 std::lock_guard lck{m_mtx};
69 std::fputs(str.c_str(), m_file);
70 std::fflush(m_file);
71 }

Member Data Documentation

◆ m_file

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

Definition at line 35 of file PileUpMTAlg.h.

35{};

◆ m_mtx

std::mutex atomic_output::m_mtx {}
private

Definition at line 36 of file PileUpMTAlg.h.

36{};

The documentation for this class was generated from the following file: