#include <GaudiKernel/ICounterSvc.h>
Inheritance diagram for ICounterSvc:
Public Types | |
| typedef StatEntity | Counter |
| the actual type of counter | |
| typedef Stat | CountObject |
| Ease the manipulation of counters in a way, that they behave like objects: Avoid: Counter* cnt = . | |
| typedef std::vector< CountObject > | Counters |
| the actual type of vectors of initialized counters | |
| COUNTER_NOT_PRESENT = 2 | |
| COUNTER_EXISTS = 4 | |
| COUNTER_REMOVED = 3 | |
| enum | { COUNTER_NOT_PRESENT = 2, COUNTER_EXISTS = 4, COUNTER_REMOVED = 3 } |
| SUCCESS = 1 | |
| Normal successful completion. | |
| NO_INTERFACE | |
| Requested interface is not available. | |
| VERSMISMATCH | |
| Requested interface version is incompatible. | |
| LAST_ERROR | |
| Last error. | |
| enum | Status { SUCCESS = 1, NO_INTERFACE, VERSMISMATCH, LAST_ERROR } |
| Return status. More... | |
Public Member Functions | |
| virtual Counter * | get (const std::string &group, const std::string &name) const =0 |
| Access an existing counter object. | |
| virtual Counters | get (const std::string &group) const =0 |
| get all counters form the given group: | |
| virtual StatusCode | create (const std::string &group, const std::string &name, longlong initial_value, Counter *&refpCounter)=0 |
| Create a new counter object. | |
| virtual CountObject | create (const std::string &group, const std::string &name, longlong initial_value=0)=0 |
| If the counter object exists already, a std::runtime_error exception is thrown. | |
| virtual StatusCode | remove (const std::string &group, const std::string &name)=0 |
| Remove a counter object. | |
| virtual StatusCode | remove (const std::string &group)=0 |
| Remove all counters of a given group. | |
| virtual StatusCode | print (const std::string &group, const std::string &name, Printout &printer) const =0 |
| Print counter value. | |
| virtual StatusCode | print (const std::string &group, Printout &printer) const =0 |
| If no such counter exists the return code is COUNTER_NOT_PRESENT Note: This call is not direct access. | |
| virtual StatusCode | print (const Counter *pCounter, Printout &printer) const =0 |
| Print counter value. | |
| virtual StatusCode | print (const CountObject &pCounter, Printout &printer) const =0 |
| Print counter value. | |
| virtual StatusCode | print (Printout &printer) const =0 |
| virtual StatusCode | defaultPrintout (MsgStream &log, const Counter *pCounter) const =0 |
| Default Printout for counters. | |
| virtual StatusCode | queryInterface (const InterfaceID &riid, void **ppvInterface)=0 |
| Query interfaces of Interface. | |
| virtual unsigned long | addRef ()=0 |
| Increment the reference count of Interface instance. | |
| virtual unsigned long | release ()=0 |
| Release Interface instance. | |
Static Public Member Functions | |
| static const InterfaceID & | interfaceID () |
| Retrieve the unique interface ID. | |
Protected Member Functions | |
| virtual | ~ICounterSvc () |
| protected virtual destructor protected virtual destructor | |
Classes | |
| class | Printout |
| Print counters for each element in the range [first, last) e.g. More... | |
Counter Creation: -----------------
// counter creation: ICounterSvc::CountObject obj = svc->create("AlgName","NumExecuted",0); obj++; obj += 10; ICounterSvc::Counter* m_counter = obj.counter(); // ICounterSvc::Counter* m_counter = obj ; ///< the same ICounterSvc::Counter* m_counter = 0; if ( svc->create("AlgName","NumExecuted",0, m_counter).isSuccess() ) { CountObject obj(m_counter); obj++; }
Counter access: ---------------
ICounterSvc::Counter* m_counter = svc->get("AlgName","NumExecuted"); if ( m_counter ) {....} // or: try { ICounterSvc::CountObject obj(svc->get("AlgName","NumExecuted")); obj++; } catch(std::invalid_argument e) { ...handle exception ... }
modified by Vanya BELYAEV ibelyaev@physics.syr.edu
Definition at line 78 of file ICounterSvc.h.
| typedef StatEntity ICounterSvc::Counter |
| typedef Stat ICounterSvc::CountObject |
Ease the manipulation of counters in a way, that they behave like objects: Avoid: Counter* cnt = .
..; ++(*cnt);
Instead: Counter* cnt = ...; CountObject obj(cnt); ++cnt;
Note: No inheritance! This class has no virtual destructor
Definition at line 98 of file ICounterSvc.h.
| typedef std::vector<CountObject> ICounterSvc::Counters |
| anonymous enum |
Definition at line 254 of file ICounterSvc.h.
00254 { COUNTER_NOT_PRESENT = 2, // Error 00255 COUNTER_EXISTS = 4, // Error ? 00256 COUNTER_REMOVED = 3 // Type of success. Low bit set 00257 } ;
enum IInterface::Status [inherited] |
Return status.
| SUCCESS | Normal successful completion. |
| NO_INTERFACE | Requested interface is not available. |
| VERSMISMATCH | Requested interface version is incompatible. |
| LAST_ERROR | Last error. |
Reimplemented in IConversionSvc, IConverter, and IDataProviderSvc.
Definition at line 113 of file IInterface.h.
00113 { 00115 SUCCESS = 1, 00117 NO_INTERFACE, 00119 VERSMISMATCH, 00121 LAST_ERROR 00122 };
| virtual ICounterSvc::~ICounterSvc | ( | ) | [protected, virtual] |
protected virtual destructor protected virtual destructor
| virtual Counter* ICounterSvc::get | ( | const std::string & | group, | |
| const std::string & | name | |||
| ) | const [pure virtual] |
Access an existing counter object.
| group | [IN] Hint for smart printing | |
| name | [IN] Counter name | |
| createIf | [IN] flag to indicate the creation if not counter found |
| virtual Counters ICounterSvc::get | ( | const std::string & | group | ) | const [pure virtual] |
get all counters form the given group:
ICounterSvc::Counters cnts = svc->get("Efficiency") ; MsgStream& stream = ... ; for ( ICounterSvc::Counters::const_iterator ic = cnts.begin() ; cnts.end() != ic ; ++ic ) { stream << (*ic) << endreq ; }
| gorup | the gorup name |
| virtual StatusCode ICounterSvc::create | ( | const std::string & | group, | |
| const std::string & | name, | |||
| longlong | initial_value, | |||
| Counter *& | refpCounter | |||
| ) | [pure virtual] |
Create a new counter object.
If the counter object exists already the existing object is returned. In this event the return code is COUNTER_EXISTS. The ownership of the actual counter stays with the service.
| group | [IN] Hint for smart printing | |
| name | [IN] Counter name | |
| initial_value | [IN] Initial counter value | |
| refpCounter | [OUT] Reference to store pointer to counter. |
| virtual CountObject ICounterSvc::create | ( | const std::string & | group, | |
| const std::string & | name, | |||
| longlong | initial_value = 0 | |||
| ) | [pure virtual] |
If the counter object exists already, a std::runtime_error exception is thrown.
The ownership of the actual counter stays with the service.
| group | [IN] Hint for smart printing | |
| name | [IN] Counter name | |
| initial_value | [IN] Initial counter value | |
| refpCounter | [OUT] Reference to store pointer to counter. |
| virtual StatusCode ICounterSvc::remove | ( | const std::string & | group, | |
| const std::string & | name | |||
| ) | [pure virtual] |
Remove a counter object.
If the counter object does not exists, the return code is COUNTER_NOT_PRESENT. The counter may not be used anymore after this call.
| group | [IN] Hint for smart printing | |
| name | [IN] Counter name | |
| initial_value | [IN] Initial counter value | |
| refpCounter | [OUT] Reference to store pointer to counter. |
| virtual StatusCode ICounterSvc::remove | ( | const std::string & | group | ) | [pure virtual] |
Remove all counters of a given group.
If no such counter exists the return code is COUNTER_NOT_PRESENT
| group | [IN] Hint for smart printing |
| virtual StatusCode ICounterSvc::print | ( | const std::string & | group, | |
| const std::string & | name, | |||
| Printout & | printer | |||
| ) | const [pure virtual] |
Print counter value.
| group | [IN] Hint for smart printing | |
| name | [IN] Counter name | |
| printer | [IN] Print actor |
| virtual StatusCode ICounterSvc::print | ( | const std::string & | group, | |
| Printout & | printer | |||
| ) | const [pure virtual] |
If no such counter exists the return code is COUNTER_NOT_PRESENT Note: This call is not direct access.
| group | [IN] Hint for smart printing | |
| printer | [IN] Print actor |
| virtual StatusCode ICounterSvc::print | ( | const Counter * | pCounter, | |
| Printout & | printer | |||
| ) | const [pure virtual] |
Print counter value.
| pCounter | [IN] Pointer to Counter object | |
| printer | [IN] Print actor |
| virtual StatusCode ICounterSvc::print | ( | const CountObject & | pCounter, | |
| Printout & | printer | |||
| ) | const [pure virtual] |
Print counter value.
| refCounter | [IN] Reference to CountObject object | |
| printer | [IN] Print actor |
| virtual StatusCode ICounterSvc::print | ( | Printout & | printer | ) | const [pure virtual] |
| virtual StatusCode ICounterSvc::defaultPrintout | ( | MsgStream & | log, | |
| const Counter * | pCounter | |||
| ) | const [pure virtual] |
Default Printout for counters.
| static const InterfaceID& ICounterSvc::interfaceID | ( | ) | [static] |
| virtual StatusCode IInterface::queryInterface | ( | const InterfaceID & | riid, | |
| void ** | ppvInterface | |||
| ) | [pure virtual, inherited] |
Query interfaces of Interface.
| riid | ID of Interface to be retrieved | |
| ppvInterface | Pointer to Location for interface pointer |
Implemented in Algorithm, AlgTool, Auditor, ConversionSvc, Converter, DataSvc, EventSelectorDataStream, MinimalEventLoopMgr, PropertyMgr, SelectStatement, and Service.
| virtual unsigned long IInterface::addRef | ( | ) | [pure virtual, inherited] |
Increment the reference count of Interface instance.
Implemented in Algorithm, AlgTool, Auditor, Converter, EventSelectorDataStream, IFactory, PropertyMgr, SelectStatement, and Service.
| virtual unsigned long IInterface::release | ( | ) | [pure virtual, inherited] |
Release Interface instance.
Implemented in Algorithm, AlgTool, Auditor, Converter, EventSelectorDataStream, IFactory, PropertyMgr, SelectStatement, and Service.
1.4.7