28 (
const std::string&
type,
29 const std::string& name,
30 const IInterface* parent)
31 : base_class (
type, name, parent),
37 declareProperty (
"Associator", m_associator,
38 "The IMultiAssociationTool instance.");
40 "List of contained block filler tools.");
41 declareProperty (
"BlockName",
m_blockName = this->name(),
42 "The name of this block.");
43 declareProperty (
"Prefix",
m_prefix =
"",
44 "Variable name prefix for the contained blocks.");
54 CHECK( AthAlgTool::initialize() );
55 CHECK( m_associator.retrieve() );
57 return StatusCode::SUCCESS;
67 CHECK( AlgTool::finalize() );
69 m_associator->releaseElementUntyped (
m_next);
72 return StatusCode::SUCCESS;
86 const std::type_info& ti)
89 CHECK( m_associator->configureD3PD (
this, ti) );
90 const std::type_info& ati = m_associator->elementTypeinfo();
94 return StatusCode::SUCCESS;
105 CHECK( m_associator->book () );
109 return StatusCode::SUCCESS;
143ContainedMultiAssociationFillerTool::fillUntyped (
const void* p,
150 m_associator->releaseElementUntyped (
m_next);
155 CHECK( m_associator->resetUntyped (p) );
158 m_next = m_associator->nextUntyped();
166 CHECK( IBlockFillerTool::againok (
sc) );
167 if (!
sc.isSuccess()) {
169 <<
"Got AGAIN/EMPTY: "
170 <<
"Nested ContainedMultiAssociationFillerTool not supported.";
174 m_associator->releaseElementUntyped (
m_next);
183 return StatusCode(AGAIN);
185 return StatusCode::SUCCESS;
Helpers for checking error return status codes and reporting errors.
#define REPORT_MESSAGE(LVL)
Report a message.
#define CHECK(...)
Evaluate an expression and check for errors.
StatusCode configureD3PD(IAddVariable *tree)
Configure the parent tree.
AddVariable(const std::string &prefix, const std::string &blockName=s_emptyString)
Constructor.
const std::string & m_prefix
Reference to the variable prefix.
Common interface for adding a variable to a tuple.
Block filler tool for noisy FEB information.
std::string m_blockName
Property: the name of this block.
ToolHandleArray< IBlockFillerTool > m_blockFillers
Property: The list of block filler tools.
::StatusCode StatusCode
StatusCode definition for legacy code.