File indexing completed on 2024-04-06 12:30:14
0001 #include "SimG4Core/Application/interface/CustomUIsessionThreadPrefix.h"
0002
0003 CustomUIsessionThreadPrefix::CustomUIsessionThreadPrefix(const std::string& threadPrefix, int threadId)
0004 : CustomUIsession(), m_threadPrefix(threadPrefix + std::to_string(threadId) + ">> ") {}
0005
0006 CustomUIsessionThreadPrefix::~CustomUIsessionThreadPrefix() {}
0007
0008 namespace {
0009 std::string addThreadPrefix(const std::string& threadPrefix, const std::string str) {
0010
0011 std::string ret;
0012 std::string::size_type beg = 0;
0013 std::string::size_type end = str.find('\n');
0014 while (end != std::string::npos) {
0015 ret += threadPrefix + str.substr(beg, end - beg) + "\n";
0016 beg = end + 1;
0017 end = str.find('\n', beg);
0018 }
0019 ret += threadPrefix + str.substr(beg, end);
0020 return ret;
0021 }
0022 }
0023
0024 G4int CustomUIsessionThreadPrefix::ReceiveG4cout(const G4String& coutString) {
0025
0026 edm::LogVerbatim("G4cout") << addThreadPrefix(m_threadPrefix, trim(coutString));
0027 return 0;
0028 }
0029
0030 G4int CustomUIsessionThreadPrefix::ReceiveG4cerr(const G4String& cerrString) {
0031 edm::LogWarning("G4cerr") << addThreadPrefix(m_threadPrefix, trim(cerrString));
0032 return 0;
0033 }