Geant4-11
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes
G4UIsession Class Reference

#include <G4UIsession.hh>

Inheritance diagram for G4UIsession:
G4coutDestination G4UIbatch G4VBasicShell G4UIQt G4UIWin32 G4UIXm G4UIterminal G4ZMQServer

Public Types

using Transformer = std::function< G4bool(G4String &)>
 

Public Member Functions

void AddCerrTransformer (const Transformer &t)
 
void AddCerrTransformer (Transformer &&t)
 
void AddCoutTransformer (const Transformer &t)
 
void AddCoutTransformer (Transformer &&t)
 
 G4UIsession ()
 
 G4UIsession (G4int iBatch)
 
G4int GetLastReturnCode () const
 
virtual void PauseSessionStart (const G4String &Prompt)
 
virtual G4int ReceiveG4cerr (const G4String &cerrString)
 
G4int ReceiveG4cerr_ (const G4String &msg)
 
virtual G4int ReceiveG4cout (const G4String &coutString)
 
G4int ReceiveG4cout_ (const G4String &msg)
 
virtual void ResetTransformers ()
 
virtual G4UIsessionSessionStart ()
 
virtual ~G4UIsession ()
 

Static Public Member Functions

static G4int InSession ()
 

Protected Attributes

G4int ifBatch = 0
 
G4int lastRC = 0
 
std::vector< TransformertransformersCerr
 
std::vector< TransformertransformersCout
 

Static Protected Attributes

static G4ICOMS_DLL G4int inSession = 0
 
static G4MTGLOB_DLL G4coutDestinationmasterG4coutDestination = nullptr
 

Detailed Description

Definition at line 42 of file G4UIsession.hh.

Member Typedef Documentation

◆ Transformer

Definition at line 61 of file G4coutDestination.hh.

Constructor & Destructor Documentation

◆ G4UIsession() [1/2]

G4UIsession::G4UIsession ( )

Definition at line 36 of file G4UIsession.cc.

37{
38 ++inSession;
39}
static G4ICOMS_DLL G4int inSession
Definition: G4UIsession.hh:67

References inSession.

◆ G4UIsession() [2/2]

G4UIsession::G4UIsession ( G4int  iBatch)

Definition at line 42 of file G4UIsession.cc.

43 : ifBatch(iBatch)
44{
45}
G4int ifBatch
Definition: G4UIsession.hh:68

◆ ~G4UIsession()

G4UIsession::~G4UIsession ( )
virtual

Definition at line 48 of file G4UIsession.cc.

49{
50 if(!ifBatch)
51 {
52 --inSession;
53 }
54}

References ifBatch, and inSession.

Member Function Documentation

◆ AddCerrTransformer() [1/2]

void G4coutDestination::AddCerrTransformer ( const Transformer t)
inlineinherited

Definition at line 67 of file G4coutDestination.hh.

68 {
69 transformersCerr.push_back(t);
70 }
std::vector< Transformer > transformersCerr

References G4coutDestination::transformersCerr.

Referenced by G4MTcoutDestination::HandleFileCerr().

◆ AddCerrTransformer() [2/2]

void G4coutDestination::AddCerrTransformer ( Transformer &&  t)
inlineinherited

Definition at line 71 of file G4coutDestination.hh.

71{ transformersCerr.push_back(t); }

References G4coutDestination::transformersCerr.

◆ AddCoutTransformer() [1/2]

void G4coutDestination::AddCoutTransformer ( const Transformer t)
inlineinherited

◆ AddCoutTransformer() [2/2]

void G4coutDestination::AddCoutTransformer ( Transformer &&  t)
inlineinherited

Definition at line 66 of file G4coutDestination.hh.

66{ transformersCout.push_back(t); }

References G4coutDestination::transformersCout.

◆ GetLastReturnCode()

G4int G4UIsession::GetLastReturnCode ( ) const
inline

Definition at line 63 of file G4UIsession.hh.

63{ return lastRC; }
G4int lastRC
Definition: G4UIsession.hh:69

References lastRC.

◆ InSession()

G4int G4UIsession::InSession ( )
static

Definition at line 68 of file G4UIsession.cc.

69{
70 return inSession;
71}

References inSession.

Referenced by G4UIcontrolMessenger::SetNewValue().

◆ PauseSessionStart()

void G4UIsession::PauseSessionStart ( const G4String Prompt)
virtual

Reimplemented in G4UIQt, G4UIXm, G4UIWin32, G4ZMQServer, G4UIterminal, G4UIbatch, and G4VBasicShell.

Definition at line 63 of file G4UIsession.cc.

64{
65}

◆ ReceiveG4cerr()

G4int G4UIsession::ReceiveG4cerr ( const G4String cerrString)
virtual

Reimplemented from G4coutDestination.

Reimplemented in G4UIQt, G4UIXm, G4UIWin32, G4ZMQServer, and G4UIterminal.

Definition at line 81 of file G4UIsession.cc.

82{
83 std::cerr << cerrString << std::flush;
84 return 0;
85}

◆ ReceiveG4cerr_()

G4int G4coutDestination::ReceiveG4cerr_ ( const G4String msg)
inherited

Definition at line 84 of file G4coutDestination.cc.

85{
86 if(transformersCout.size() > 0)
87 {
88 G4String m = msg;
89 std::for_each(transformersCerr.begin(), transformersCerr.end(),
90 [&m](const Transformer& t) { t(m); }
91 // Call transforming function on message
92 );
93 return ReceiveG4cerr(m);
94 }
95 else
96 {
97 return ReceiveG4cerr(msg);
98 }
99}
static constexpr double m
Definition: G4SIunits.hh:109
virtual G4int ReceiveG4cerr(const G4String &msg)
std::function< G4bool(G4String &)> Transformer

References m, G4coutDestination::ReceiveG4cerr(), G4coutDestination::transformersCerr, and G4coutDestination::transformersCout.

Referenced by G4MasterForwardcoutDestination::ReceiveG4cerr().

◆ ReceiveG4cout()

G4int G4UIsession::ReceiveG4cout ( const G4String coutString)
virtual

Reimplemented from G4coutDestination.

Reimplemented in G4UIQt, G4UIXm, G4UIWin32, G4ZMQServer, and G4UIterminal.

Definition at line 74 of file G4UIsession.cc.

75{
76 std::cout << coutString << std::flush;
77 return 0;
78}

◆ ReceiveG4cout_()

G4int G4coutDestination::ReceiveG4cout_ ( const G4String msg)
inherited

Definition at line 62 of file G4coutDestination.cc.

63{
64 // Avoid copy of string if not necessary
65 if(transformersCout.size() > 0)
66 {
67 G4String m = msg;
68 G4bool result = true;
69 for(const auto& el : transformersCout)
70 {
71 result &= el(m);
72 if(!result)
73 break;
74 }
75 return (result ? ReceiveG4cout(m) : 0);
76 }
77 else
78 {
79 return ReceiveG4cout(msg);
80 }
81}
bool G4bool
Definition: G4Types.hh:86
virtual G4int ReceiveG4cout(const G4String &msg)

References m, G4coutDestination::ReceiveG4cout(), and G4coutDestination::transformersCout.

Referenced by G4MasterForwardcoutDestination::ReceiveG4cout().

◆ ResetTransformers()

void G4coutDestination::ResetTransformers ( )
virtualinherited

Definition at line 41 of file G4coutDestination.cc.

42{
43 transformersCout.clear();
44 transformersCerr.clear();
45}

References G4coutDestination::transformersCerr, and G4coutDestination::transformersCout.

◆ SessionStart()

G4UIsession * G4UIsession::SessionStart ( )
virtual

Reimplemented in G4ZMQServer, G4UIbatch, G4UIQt, G4UIterminal, G4UIXm, G4UIWin32, and G4VBasicShell.

Definition at line 57 of file G4UIsession.cc.

58{
59 return nullptr;
60}

Field Documentation

◆ ifBatch

G4int G4UIsession::ifBatch = 0
protected

Definition at line 68 of file G4UIsession.hh.

Referenced by ~G4UIsession().

◆ inSession

G4int G4UIsession::inSession = 0
staticprotected

Definition at line 67 of file G4UIsession.hh.

Referenced by G4UIsession(), InSession(), and ~G4UIsession().

◆ lastRC

G4int G4UIsession::lastRC = 0
protected

Definition at line 69 of file G4UIsession.hh.

Referenced by G4UIbatch::G4UIbatch(), GetLastReturnCode(), and G4UIbatch::SessionStart().

◆ masterG4coutDestination

G4coutDestination * G4coutDestination::masterG4coutDestination = nullptr
staticprotectedinherited

◆ transformersCerr

std::vector<Transformer> G4coutDestination::transformersCerr
protectedinherited

◆ transformersCout

std::vector<Transformer> G4coutDestination::transformersCout
protectedinherited

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