5#ifndef ATHENAKERNEL_METACONT_H
6#define ATHENAKERNEL_METACONT_H
36 virtual std::vector<SourceID>
sources()
const = 0;
38 virtual void list(std::ostringstream& stream)
const = 0;
95 template <
class T,
class U>
118 T* t =
static_cast<T*
>(obj);
126 std::lock_guard<std::mutex> lock(
m_mut);
134 std::lock_guard<std::mutex> lock(
m_mut);
135 return m_metaSet.insert(std::make_pair(sid,t)).second;
142 std::lock_guard<std::mutex> lock(
m_mut);
150 std::lock_guard<std::mutex> lock(
m_mut);
152 typename MetaContSet::const_iterator itr =
m_metaSet.find(sid);
166 std::lock_guard<std::mutex> lock(
m_mut);
168 typename MetaContSet::const_iterator itr =
m_metaSet.find(sid);
181 std::lock_guard<std::mutex> lock(
m_mut);
183 stream <<
"MetaCont with size : [" <<
m_metaSet.size() <<
"]" << std::endl;
185 stream <<
"... Key : " << mapel.first << std::endl;
193 std::lock_guard<std::mutex> lock(
m_mut);
200std::vector<MetaContBase::SourceID>
202 std::lock_guard<std::mutex> lock(
m_mut);
204 std::vector<MetaContBase::SourceID>
r;
206 r.push_back(ent.first);
220#define METACONT_DEF(T, CLID) \
221 CLASS_DEF( MetaCont<T>, CLID, 1 ) \
222 SG_BASES( MetaCont<T>, MetaContBase )
Type used to identify a metadata source.
Provide an interface for finding inheritance information at run time.
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Metafunction to find the proper DataBucket class for T.