#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.