Geant4
11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4FilecoutDestination.cc
Go to the documentation of this file.
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
// G4FilecoutDestination class implementation
27
//
28
// Author: A.Dotti (SLAC), April 2017
29
// --------------------------------------------------------------------
30
31
#include "
G4FilecoutDestination.hh
"
32
33
#include <ios>
34
#include <memory>
35
36
// --------------------------------------------------------------------
37
G4FilecoutDestination::~G4FilecoutDestination
()
38
{
39
Close
();
40
if
(m_output)
41
{
42
m_output.reset();
43
}
44
}
45
46
// --------------------------------------------------------------------
47
void
G4FilecoutDestination::Open
(std::ios_base::openmode mode)
48
{
49
if
(m_name.empty())
50
{
51
#ifndef __MIC
52
// Cannot use G4Exception, because G4cout/G4cerr is not setup
53
throw
std::ios_base::failure(
"No output file name specified"
);
54
#endif
55
}
56
if
(m_output !=
nullptr
&& m_output->is_open())
57
{
58
Close
();
59
}
60
m_output = std::make_unique<std::ofstream>(m_name, std::ios_base::out | mode);
61
}
62
63
// --------------------------------------------------------------------
64
void
G4FilecoutDestination::Close
()
65
{
66
if
(m_output && m_output->is_open())
67
{
68
m_output->close();
69
}
70
}
71
72
// --------------------------------------------------------------------
73
G4int
G4FilecoutDestination::ReceiveG4debug
(
const
G4String
& msg)
74
{
75
if
(m_output ==
nullptr
|| !m_output->is_open())
76
{
77
Open
(m_mode);
78
}
79
*m_output << msg;
80
return
0;
81
}
82
83
// --------------------------------------------------------------------
84
G4int
G4FilecoutDestination::ReceiveG4cout
(
const
G4String
& msg)
85
{
86
if
(m_output ==
nullptr
|| !m_output->is_open())
87
{
88
Open
(m_mode);
89
}
90
*m_output << msg;
91
return
0;
92
}
93
94
// --------------------------------------------------------------------
95
G4int
G4FilecoutDestination::ReceiveG4cerr
(
const
G4String
& msg)
96
{
97
if
(m_output ==
nullptr
|| !m_output->is_open())
98
{
99
Open
(m_mode);
100
}
101
*m_output << msg;
102
return
0;
103
}
G4FilecoutDestination.hh
G4int
int G4int
Definition
G4Types.hh:85
G4FilecoutDestination::~G4FilecoutDestination
~G4FilecoutDestination() override
Definition
G4FilecoutDestination.cc:37
G4FilecoutDestination::Open
void Open(std::ios_base::openmode mode=std::ios_base::app)
Definition
G4FilecoutDestination.cc:47
G4FilecoutDestination::ReceiveG4cout
G4int ReceiveG4cout(const G4String &msg) override
Definition
G4FilecoutDestination.cc:84
G4FilecoutDestination::ReceiveG4debug
G4int ReceiveG4debug(const G4String &msg) override
Definition
G4FilecoutDestination.cc:73
G4FilecoutDestination::Close
void Close()
Definition
G4FilecoutDestination.cc:64
G4FilecoutDestination::ReceiveG4cerr
G4int ReceiveG4cerr(const G4String &msg) override
Definition
G4FilecoutDestination.cc:95
G4String
Definition
G4String.hh:62
geant4-v11.2.2
source
global
management
src
G4FilecoutDestination.cc
Generated by
1.12.0