ATLAS Offline Software
Loading...
Searching...
No Matches
AthenaSummarySvc.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ATHENASERVICES_ATHENASUMSVC_H
6#define ATHENASERVICES_ATHENASUMSVC_H
7
8/*****************************************************************************
9 *
10 * AthenaSummarySvc.h
11 * AthenaSummarySvc
12 *
13 * Author: Charles Leggett
14 *
15 * Provides summary at end of athena job
16 *
17 *****************************************************************************/
18
23
24#include "GaudiKernel/StatusCode.h"
25#include "GaudiKernel/ServiceHandle.h"
26#include "GaudiKernel/IIncidentSvc.h"
27#include "GaudiKernel/IIncidentListener.h"
28
29#include <list>
30#include <map>
31#include <vector>
32#include <string>
33#include <iosfwd>//ofstream
34
35
37 public extends<AthService, IIncidentListener, IAthenaSummarySvc> {
38
39public:
40
41 AthenaSummarySvc( const std::string& name, ISvcLocator* svc );
42
43 virtual StatusCode initialize() override;
44 virtual StatusCode reinitialize() override;
45 virtual StatusCode finalize() override;
46
47 virtual StatusCode createSummary() override;
48 virtual void setStatus(int s) override {m_status = s;}
49 virtual void addListener(const std::string& incident_name) override;
50 virtual void addSummary(const std::string& dict_key, const std::string& data) override;
51 virtual const std::string& getOutputFile() const override { return m_summaryFile; }
52
53private:
54
55 void createDict(std::ofstream& );
56 void createASCII(std::ofstream& );
57 virtual void handle(const Incident &inc) override;
58 static void newHandler();
59
60 // properties
61 StringProperty m_summaryFile{this, "SummaryFile", "AthSummary.txt",
62 "Output File"};
63 StringProperty m_summaryFormat{this, "SummaryFileFormat", "both",
64 "output format: one of 'ascii', 'python', 'both'"};
65 StringArrayProperty m_extraInc{this, "ExtraIncidents", {},
66 "user incidets to monitor"};
67 StringArrayProperty m_keywords{this, "keywords", {},
68 "kewords to scan for in MessageSvc. WARNING: THIS IS VERY SLOW!!!"};
69
70 // member data
73
74 static char* s_block ATLAS_THREAD_SAFE; // used during initialize
75 static bool s_badalloc ATLAS_THREAD_SAFE; // flag set after bad-alloc
76
77 std::list<std::string> m_inputFilesRead;
78 std::list<std::string> m_outputFiles;
79 std::list<std::string> m_outputFilesError;
80
81 std::map< std::string, std::map<std::string, int> > m_extraIncidents;
82 std::vector< std::pair<std::string, std::string> > m_extraInfo;
83
84 std::new_handler m_new{nullptr};
85 int m_status{0};
86 unsigned int m_eventsRead{0};
87 unsigned int m_eventsWritten{0};
88 unsigned int m_eventsSkipped{0};
89 unsigned int m_runs{0};
90};
91
92#endif
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
Define macros for attributes used to control the static checker.
std::list< std::string > m_outputFilesError
StringArrayProperty m_extraInc
virtual StatusCode createSummary() override
std::vector< std::pair< std::string, std::string > > m_extraInfo
StringArrayProperty m_keywords
void createASCII(std::ofstream &)
virtual const std::string & getOutputFile() const override
unsigned int m_eventsWritten
ServiceHandle< IIncidentSvc > p_incSvc
std::list< std::string > m_inputFilesRead
unsigned int m_runs
virtual void addListener(const std::string &incident_name) override
virtual void setStatus(int s) override
std::new_handler m_new
std::map< std::string, std::map< std::string, int > > m_extraIncidents
static char *s_block ATLAS_THREAD_SAFE
StringProperty m_summaryFile
std::list< std::string > m_outputFiles
void createDict(std::ofstream &)
AthenaSummarySvc(const std::string &name, ISvcLocator *svc)
virtual StatusCode initialize() override
virtual StatusCode reinitialize() override
StringProperty m_summaryFormat
virtual StatusCode finalize() override
virtual void handle(const Incident &inc) override
virtual void addSummary(const std::string &dict_key, const std::string &data) override
static void newHandler()
ILoggedMessageSvc * p_logMsg
unsigned int m_eventsRead
unsigned int m_eventsSkipped
Extends IMessageSvc to get logged messages.