ATLAS Offline Software
Classes | List of all members
ITagInfoMgr Class Referenceabstract

This is a Athena service which manages detector description tag information. It maintains a TagInfo object with current tag values. More...

#include <ITagInfoMgr.h>

Inheritance diagram for ITagInfoMgr:
Collaboration diagram for ITagInfoMgr:

Classes

class  Listener
 Listener interface class that client who want to be notified about TagInfo update should implement (and then register themselves calliing addListener()) More...
 

typedefs: (a copy from TagInfo, to avoid dependencies)

typedef std::pair< std::string, std::string > NameTagPair
 
typedef std::vector< NameTagPairNameTagPairVec
 
virtual void addListener (Listener *listener)=0
 Add a Listener to the notification list for TagInfo changes. More...
 
virtual void removeListener (Listener *listener)=0
 Remove a Listener from the notification list for TagInfo changes. More...
 
virtual StatusCode addTag (const std::string &tagName, const std::string &tagValue)=0
 Method to allow clients to add in tags as: tag name, tag value. More...
 
virtual StatusCode removeTagFromInput (const std::string &tagName)=0
 Method to allow clients to remove a tag which may have come in on the input. More...
 
virtual std::string findTag (const std::string &name) const =0
 Find tag by its name, return by value - empty string if not found. More...
 
virtual std::string findInputTag (const std::string &name) const =0
 Find INPUT tag by its name, return by value - empty string if not found. More...
 
virtual NameTagPairVec getInputTags () const =0
 Return a vector with all current input tags. More...
 
virtual std::string dumpTagInfoToStr () const =0
 Dump the content of the current TagInfo to std::string for debug. More...
 
virtual void printTags (MsgStream &log) const =0
 Printout method. More...
 
static const InterfaceID & interfaceID ()
 Retrieve interface ID. More...
 

Detailed Description

This is a Athena service which manages detector description tag information. It maintains a TagInfo object with current tag values.

The tags to fill the TagInfo object may come from a variety of sources: i.e. the tags specified by the GeoModelSvc and IOVDbSvc, or the tags stored in the incoming EventInfo object, or the TagInfo object itself may be in the IOV DB. The exact combination is controlled by job options.

This interface also provides a 'input' method to allow client to add in their own tags:

virtual StatusCode addTag(const std::string& tagName, const std::string& tagValue) = 0;

The full set of tags in TagInfo are copied each event into EventInfo (specifically EventType) to be written out in the event stream. Currently, the tags are NOT written to the IOV DB via the TagInfoMgr.

Some clients need to know when detector description tags change so that they may update their descriptions, such as the geometry description. The TagInfo object will change in this case. So clients that need to know when tags change should register themselves by calling ITagInfoMgr::addListener(listener*) method. These clients need to implement the ITagInfoMgr::Listener interface and ITagInfoMgr::Listener::tagInfoUpdated() method which will be called when the TagInfo changes.

Definition at line 57 of file ITagInfoMgr.h.

Member Typedef Documentation

◆ NameTagPair

typedef std::pair<std::string, std::string> ITagInfoMgr::NameTagPair

Definition at line 62 of file ITagInfoMgr.h.

◆ NameTagPairVec

Definition at line 63 of file ITagInfoMgr.h.

Member Function Documentation

◆ addListener()

virtual void ITagInfoMgr::addListener ( Listener listener)
pure virtual

Add a Listener to the notification list for TagInfo changes.

Implemented in TagInfoMgr.

◆ addTag()

virtual StatusCode ITagInfoMgr::addTag ( const std::string &  tagName,
const std::string &  tagValue 
)
pure virtual

Method to allow clients to add in tags as: tag name, tag value.

Implemented in TagInfoMgr.

◆ dumpTagInfoToStr()

virtual std::string ITagInfoMgr::dumpTagInfoToStr ( ) const
pure virtual

Dump the content of the current TagInfo to std::string for debug.

Implemented in TagInfoMgr.

◆ findInputTag()

virtual std::string ITagInfoMgr::findInputTag ( const std::string &  name) const
pure virtual

Find INPUT tag by its name, return by value - empty string if not found.

Implemented in TagInfoMgr.

◆ findTag()

virtual std::string ITagInfoMgr::findTag ( const std::string &  name) const
pure virtual

Find tag by its name, return by value - empty string if not found.

Implemented in TagInfoMgr.

◆ getInputTags()

virtual NameTagPairVec ITagInfoMgr::getInputTags ( ) const
pure virtual

Return a vector with all current input tags.

Implemented in TagInfoMgr.

◆ interfaceID()

const InterfaceID & ITagInfoMgr::interfaceID ( )
inlinestatic

Retrieve interface ID.

Definition at line 113 of file ITagInfoMgr.h.

114 {
115  static const InterfaceID IID_ITagInfoMgr("ITagInfoMgr", 1 , 0);
116  return IID_ITagInfoMgr;
117 }

◆ printTags()

virtual void ITagInfoMgr::printTags ( MsgStream &  log) const
pure virtual

Printout method.

Implemented in TagInfoMgr.

◆ removeListener()

virtual void ITagInfoMgr::removeListener ( Listener listener)
pure virtual

Remove a Listener from the notification list for TagInfo changes.

Implemented in TagInfoMgr.

◆ removeTagFromInput()

virtual StatusCode ITagInfoMgr::removeTagFromInput ( const std::string &  tagName)
pure virtual

Method to allow clients to remove a tag which may have come in on the input.

Implemented in TagInfoMgr.


The documentation for this class was generated from the following file: