ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Database
IOVDbDataModel
IOVDbDataModel
IOVPayloadContainer.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef IOVDBDATAMODEL_IOVPAYLOADCONTAINER_H
6
#define IOVDBDATAMODEL_IOVPAYLOADCONTAINER_H
7
20
21
#include "
AthenaKernel/IOVRange.h
"
22
#include "
AthenaPoolUtilities/CondAttrListCollection.h
"
23
24
#include <vector>
25
34
35
class
IOVPayloadContainer
{
36
public
:
37
38
typedef
std::vector<CondAttrListCollection*>
payloadVec
;
39
typedef
payloadVec::const_iterator
const_iterator
;
40
typedef
payloadVec::size_type
size_type
;
41
43
44
IOVPayloadContainer
();
45
~IOVPayloadContainer
();
46
IOVPayloadContainer
(
const
IOVPayloadContainer
& cont);
47
IOVPayloadContainer
&
operator=
(
const
IOVPayloadContainer
& cont);
49
51
52
54
const_iterator
begin
()
const
;
55
57
const_iterator
end
()
const
;
58
60
CondAttrListCollection
*
at
(
unsigned
int
i)
const
;
61
63
size_type
size
()
const
;
64
66
//provided IOVTime
67
const_iterator
find
(
const
IOVTime
& time)
const
;
68
70
72
73
78
bool
merge
(
CondAttrListCollection
* attrListColl);
80
81
private
:
82
friend
class
IOVPayloadContainerCnv_p1
;
83
friend
class
IOVPayloadContainerPTCnv_p1
;
84
85
class
AttrListCollSortStart
{
86
public
:
87
bool
operator ()
(
const
CondAttrListCollection
*
x
,
const
IOVTime
&
y
)
88
{
return
(
x
->minRange().start() <
y
); }
89
};
90
91
class
AttrListCollSortStop
{
92
public
:
93
bool
operator ()
(
const
CondAttrListCollection
*
x
,
const
IOVTime
&
y
)
94
{
return
(
x
->minRange().stop() <
y
); }
95
};
96
97
payloadVec
m_payloadVec
;
98
};
99
100
// inlines
101
inline
102
IOVPayloadContainer::IOVPayloadContainer
()
103
{}
104
105
inline
106
IOVPayloadContainer::const_iterator
107
IOVPayloadContainer::begin
()
const
108
{
109
return
(
m_payloadVec
.begin());
110
}
111
112
inline
113
IOVPayloadContainer::const_iterator
114
IOVPayloadContainer::end
()
const
115
{
116
return
(
m_payloadVec
.end());
117
}
118
119
inline
120
IOVPayloadContainer::size_type
121
IOVPayloadContainer::size
()
const
122
{
123
return
(
m_payloadVec
.size());
124
}
125
126
inline
127
CondAttrListCollection
*
128
IOVPayloadContainer::at
(
unsigned
int
i)
const
129
{
130
if
(i <
m_payloadVec
.size())
return
m_payloadVec
[i];
131
return
(0);
132
}
133
134
inline
135
IOVPayloadContainer::const_iterator
136
IOVPayloadContainer::find
(
const
IOVTime
& time)
const
137
{
138
// Find first collection where time < stop time
139
const_iterator
result = std::lower_bound(
m_payloadVec
.begin(),
140
m_payloadVec
.end(),
141
time,
AttrListCollSortStop
()) ;
142
// At end return:
143
if
( result ==
m_payloadVec
.end() )
return
(result) ;
144
145
// If time == stop, move forward one
146
if
( (*result)->minRange().stop() == time) ++result;
147
148
// At end return:
149
if
( result ==
m_payloadVec
.end() )
return
(result) ;
150
151
// Check that time is in interval
152
if
( (*result)->minRange().start() <= time)
return
(result);
153
154
// Not found
155
return
(
m_payloadVec
.end());
156
}
157
158
159
#endif
// IOVDBDATAMODEL_IOVPAYLOADCONTAINER_H
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
IOVRange.h
Validity Range object.
y
#define y
x
#define x
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number.
Definition
CondAttrListCollection.h:51
IOVPayloadContainer::AttrListCollSortStart
Definition
IOVPayloadContainer.h:85
IOVPayloadContainer::AttrListCollSortStart::operator()
bool operator()(const CondAttrListCollection *x, const IOVTime &y)
Definition
IOVPayloadContainer.h:87
IOVPayloadContainer::AttrListCollSortStop
Definition
IOVPayloadContainer.h:91
IOVPayloadContainer::AttrListCollSortStop::operator()
bool operator()(const CondAttrListCollection *x, const IOVTime &y)
Definition
IOVPayloadContainer.h:93
IOVPayloadContainer::size
size_type size() const
size of payload vector
Definition
IOVPayloadContainer.h:121
IOVPayloadContainer::IOVPayloadContainer
IOVPayloadContainer()
Definition
IOVPayloadContainer.h:102
IOVPayloadContainer::operator=
IOVPayloadContainer & operator=(const IOVPayloadContainer &cont)
Definition
IOVPayloadContainer.cxx:22
IOVPayloadContainer::m_payloadVec
payloadVec m_payloadVec
Definition
IOVPayloadContainer.h:97
IOVPayloadContainer::const_iterator
payloadVec::const_iterator const_iterator
Definition
IOVPayloadContainer.h:39
IOVPayloadContainer::~IOVPayloadContainer
~IOVPayloadContainer()
Definition
IOVPayloadContainer.cxx:7
IOVPayloadContainer::begin
const_iterator begin() const
Begin of payload vector.
Definition
IOVPayloadContainer.h:107
IOVPayloadContainer::end
const_iterator end() const
End of payload vector.
Definition
IOVPayloadContainer.h:114
IOVPayloadContainer::find
const_iterator find(const IOVTime &time) const
find the first payload that has a IOVRange which includes the
Definition
IOVPayloadContainer.h:136
IOVPayloadContainer::size_type
payloadVec::size_type size_type
Definition
IOVPayloadContainer.h:40
IOVPayloadContainer::at
CondAttrListCollection * at(unsigned int i) const
Element access.
Definition
IOVPayloadContainer.h:128
IOVPayloadContainer::payloadVec
std::vector< CondAttrListCollection * > payloadVec
Definition
IOVPayloadContainer.h:38
IOVPayloadContainer::IOVPayloadContainerPTCnv_p1
friend class IOVPayloadContainerPTCnv_p1
Definition
IOVPayloadContainer.h:83
IOVPayloadContainer::IOVPayloadContainerCnv_p1
friend class IOVPayloadContainerCnv_p1
Definition
IOVPayloadContainer.h:82
IOVTime
Basic time unit for IOVSvc.
Definition
IOVTime.h:33
merge
Definition
merge.py:1
Generated on
for ATLAS Offline Software by
1.17.0