9#include "GaudiKernel/IInterface.h"
10#include "GaudiKernel/Service.h"
14static const InterfaceID IID_IHltStoreSvc(
"IID_IHltStoreSvc", 1, 0 );
16class HltStoreSvc :
public Service,
virtual public IInterface {
19 HltStoreSvc(
const std::string& name, ISvcLocator* sl );
22 virtual StatusCode
queryInterface(
const InterfaceID& riid,
void** ppvIF );
30 static const InterfaceID&
interfaceID() {
return IID_IHltStoreSvc; }
42 bool exists(
const std::string& name );
54 template <
class T>
bool put(
const std::string& name,
const T& value ) {
58 std::cout <<
"demanded key already exists, overwrite old one" << std::endl;
70 template <
class T>
bool get(
const std::string& name, T& value ) {
72 ContainerType::iterator it =
m_map.find( name );
74 if ( it !=
m_map.end() )
90 bool erase(
const std::string& name ) {
91 ContainerType::iterator it =
m_map.find( name );
92 if ( it !=
m_map.end() )
94 delete ( *it ).second;
105 for ( ContainerType::iterator it =
m_map.begin(); it !=
m_map.end(); it++ )
106 {
delete ( *it ).second; }
124 const T&
value()
const {
return m_value; }
129 template <
class T1>
void erase( T1*
value ) {
delete value; }
map< string, BaseHolder * > ContainerType
bool put(const std::string &name, const T &value)
static const InterfaceID & interfaceID()
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvIF)
virtual StatusCode finalize()
bool get(const std::string &name, T &value)
bool erase(const std::string &name)
HltStoreSvc(const std::string &name, ISvcLocator *sl)
bool exists(const std::string &name)
virtual StatusCode initialize()