18 #ifndef DBDATAOBJECTS_CONDATTRLISTVEC_H
19 #define DBDATAOBJECTS_CONDATTRLISTVEC_H
22 #include "CoralBase/Attribute.h"
23 #include "CoralBase/AttributeList.h"
24 #include "CoralBase/AttributeListSpecification.h"
28 #include "GaudiKernel/DataObject.h"
41 typedef std::map<unsigned int, std::vector<const coral::AttributeList*> >
88 const std::vector<coral::AttributeList>&
data,
89 const unsigned int datastart,
const unsigned int dataend);
95 const std::vector<unsigned int>&
channelIDs()
const;
103 const std::vector<const coral::AttributeList*>&
115 coral::AttributeListSpecification*
m_spec;
124 #include "AthenaKernel/CondCont.h"
130 m_uniqueiov(true),m_runevent(runevent),m_spec(0) {
138 m_uniqueiov(true),m_runevent(runevent),m_spec(0) {
150 DataObject::DataObject(rhs),
151 m_iovmap(rhs.m_iovmap),
152 m_minrange(rhs.m_minrange),
153 m_uniqueiov(rhs.m_uniqueiov),
154 m_runevent(rhs.m_runevent),
159 if (rhs.
m_data.size()>0) {
160 m_spec=
new coral::AttributeListSpecification();
162 for (coral::AttributeList::const_iterator itr=atr1.begin();itr!=atr1.end();
164 const coral::AttributeSpecification& aspec=itr->specification();
165 m_spec->extend(aspec.name(),aspec.typeName());
170 (
m_data.back().second).fastCopyData(itr->second);
211 {
return m_data.begin(); }
240 const unsigned int chan,
252 if (
m_spec==0 && data_begin!=data_end) {
253 m_spec=
new coral::AttributeListSpecification();
254 for (coral::AttributeList::const_iterator itr=data_begin->begin();itr!=data_begin->end();++itr) {
255 const coral::AttributeSpecification& aspec=itr->specification();
256 m_spec->extend(aspec.name(),aspec.typeName());
262 (
m_data.back().second).fastCopyData(*itr);
269 const unsigned int chan,
270 const std::vector<coral::AttributeList>&
data,
271 const unsigned int datastart,
const unsigned int dataend)
283 if (
m_spec==0 && datastart!=dataend) {
284 m_spec=
new coral::AttributeListSpecification();
286 for (coral::AttributeList::const_iterator itr=atr0.begin();
287 itr!=atr0.end();++itr) {
288 const coral::AttributeSpecification& aspec=itr->specification();
289 m_spec->extend(aspec.name(),aspec.typeName());
293 for (
unsigned int i=datastart;
i<dataend;++
i) {
310 return (
m.find(
chan)!=
m.end());
313 inline const std::vector<const coral::AttributeList*>&
317 AttrListCVMap::const_iterator
it =
m.find (
chan);
321 static const std::vector<const coral::AttributeList*> dum;
334 unsigned int chan=
p.first;
336 if (clist==
index.m_indexchanvec.end()) {
338 std::pair<AttrListCVMap::iterator,bool>
res=
339 index.m_indexchanvec.insert(AttrListCVMap::value_type(
chan,
340 std::vector<const coral::AttributeList*>()));
344 clist->second.push_back(&(
p.second));
352 #endif // DBDATAOBJECTS_CONDATTRLISTVEC_H