CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
cond::IOVSequence Class Reference

#include <IOVSequence.h>

Inheritance diagram for cond::IOVSequence:
cond::UpdateStamp

Public Types

typedef Container::const_iterator const_iterator
 
typedef ora::PVector< ItemContainer
 
typedef cond::IOVElement Item
 
typedef Container::iterator iterator
 

Public Member Functions

size_t add (cond::Time_t time, std::string const &wrapperToken)
 
bool exist (cond::Time_t time) const
 
const_iterator find (cond::Time_t time) const
 
const_iterator findSince (cond::Time_t time) const
 
cond::Time_t firstSince () const
 
Container const & iovs () const
 
 IOVSequence ()
 
 IOVSequence (cond::TimeType ttype)
 
 IOVSequence (int type, cond::Time_t till, std::string const &imetadata)
 
 IOVSequence (IOVSequence const &rh)
 
cond::Time_t lastTill () const
 
void loadAll () const
 
std::string const & metadataToken () const
 
bool notOrdered () const
 
IOVSequenceoperator= (IOVSequence const &rh)
 
Containerpiovs ()
 
Container const & piovs () const
 
cond::TimeType timeType () const
 
size_t truncate ()
 
void updateLastTill (cond::Time_t till)
 
 ~IOVSequence ()
 
- Public Member Functions inherited from cond::UpdateStamp
std::string const & comment () const
 
int revision () const
 
int stamp (std::string const &icomment, bool append=false)
 
cond::Time_t timestamp () const
 
 UpdateStamp ()
 
 UpdateStamp (UpdateStamp const &rhs)
 
virtual ~UpdateStamp ()
 

Private Member Functions

void disorder ()
 
Container const & sortMe () const
 

Private Attributes

Container m_iovs
 
cond::Time_t m_lastTill
 
std::string m_metadata
 
bool m_notOrdered
 
Containerm_sorted
 
int m_timetype
 

Detailed Description

a time order sequence of interval-of-validity The time associated to each interval is the end-validity (till time) the end of each interval is the begin of the next it is a UpdateStamp by mixin (I'll regret..)

Definition at line 22 of file IOVSequence.h.

Member Typedef Documentation

Definition at line 27 of file IOVSequence.h.

Definition at line 25 of file IOVSequence.h.

Definition at line 24 of file IOVSequence.h.

Definition at line 26 of file IOVSequence.h.

Constructor & Destructor Documentation

cond::IOVSequence::IOVSequence ( )

Definition at line 10 of file IOVSequence.cc.

10 : m_notOrdered(false), m_sorted(0) {}
Container * m_sorted
Definition: IOVSequence.h:117
cond::IOVSequence::IOVSequence ( cond::TimeType  ttype)
explicit

Definition at line 12 of file IOVSequence.cc.

12  :
13  m_timetype(ttype), m_lastTill(timeTypeSpecs[ttype].endValue),
14  m_notOrdered(false), m_metadata(" "), m_sorted(0) {}
const TimeTypeSpecs timeTypeSpecs[]
Definition: Time.cc:22
std::string m_metadata
Definition: IOVSequence.h:106
Container * m_sorted
Definition: IOVSequence.h:117
cond::Time_t m_lastTill
Definition: IOVSequence.h:102
cond::IOVSequence::IOVSequence ( int  type,
cond::Time_t  till,
std::string const &  imetadata 
)

Definition at line 18 of file IOVSequence.cc.

19  :
20  m_timetype(type), m_lastTill(till),m_notOrdered(false),
21  m_metadata(imetadata), m_sorted(0) {}
type
Definition: HCALResponse.h:22
std::string m_metadata
Definition: IOVSequence.h:106
Container * m_sorted
Definition: IOVSequence.h:117
cond::Time_t m_lastTill
Definition: IOVSequence.h:102
cond::IOVSequence::~IOVSequence ( )

Definition at line 23 of file IOVSequence.cc.

References m_sorted.

23  {
24  delete m_sorted;
25  }
Container * m_sorted
Definition: IOVSequence.h:117
cond::IOVSequence::IOVSequence ( IOVSequence const &  rh)

Definition at line 27 of file IOVSequence.cc.

27  :
28  UpdateStamp(rh),
29  m_iovs(rh.m_iovs),
30  m_timetype(rh.m_timetype),
31  m_lastTill(rh.m_lastTill),
32  m_notOrdered(rh.m_notOrdered),
33  m_metadata(rh.m_metadata),
34  m_sorted(0) {}
std::string m_metadata
Definition: IOVSequence.h:106
Container m_iovs
Definition: IOVSequence.h:100
Container * m_sorted
Definition: IOVSequence.h:117
cond::Time_t m_lastTill
Definition: IOVSequence.h:102

Member Function Documentation

size_t cond::IOVSequence::add ( cond::Time_t  time,
std::string const &  wrapperToken 
)

Definition at line 72 of file IOVSequence.cc.

References prof2calltree::back, disorder(), relativeConstraints::empty, m_notOrdered, piovs(), ora::PVector< Tp >::push_back(), and ora::PVector< Tp >::size().

Referenced by cond::backportIOV().

73  {
74  if (!piovs().empty() && ( m_notOrdered || time<piovs().back().sinceTime())) disorder();
75  piovs().push_back(Item(time, wrapperToken));
76  return piovs().size()-1;
77  }
void push_back(const Tp &x)
Definition: PVector.h:177
Container & piovs()
Definition: IOVSequence.h:87
cond::IOVElement Item
Definition: IOVSequence.h:24
size_type size() const
Definition: PVector.h:102
void cond::IOVSequence::disorder ( )
private

Definition at line 107 of file IOVSequence.cc.

References m_notOrdered, and m_sorted.

Referenced by add(), and truncate().

107  {
108  m_notOrdered=true;
109  delete m_sorted; m_sorted=0;
110  }
Container * m_sorted
Definition: IOVSequence.h:117
bool cond::IOVSequence::exist ( cond::Time_t  time) const

Definition at line 102 of file IOVSequence.cc.

References ora::PVector< Tp >::end(), findSince(), and iovs().

102  {
103  return findSince(time)!=iovs().end();
104  }
iterator end()
Definition: PVector.h:67
Container const & iovs() const
Definition: IOVSequence.cc:54
const_iterator findSince(cond::Time_t time) const
Definition: IOVSequence.cc:97
IOVSequence::const_iterator cond::IOVSequence::find ( cond::Time_t  time) const

Definition at line 85 of file IOVSequence.cc.

References begin, end, ora::PVector< Tp >::end(), iovs(), lastTill(), L1TEmulatorMonitor_cff::p, and cond::IOVElement::sinceTime().

Referenced by cond::IOVService::exportIOVRangeWithPayload(), findSince(), cond::IOVService::payloadToken(), and cond::IOVService::validity().

85  {
86  if (time>lastTill()) return iovs().end();
87  IOVSequence::const_iterator p = std::upper_bound(iovs().begin(),iovs().end(),Item(time),
88  boost::bind(std::less<cond::Time_t>(),
89  boost::bind(&Item::sinceTime,_1),
90  boost::bind(&Item::sinceTime,_2)
91  )
92  );
93  return (p!=iovs().begin()) ? p-1 : iovs().end();
94  }
cond::Time_t lastTill() const
Definition: IOVSequence.h:63
iterator end()
Definition: PVector.h:67
Container const & iovs() const
Definition: IOVSequence.cc:54
Container::const_iterator const_iterator
Definition: IOVSequence.h:27
#define end
Definition: vmac.h:38
cond::IOVElement Item
Definition: IOVSequence.h:24
cond::Time_t sinceTime() const
Definition: IOVElement.h:21
#define begin
Definition: vmac.h:31
IOVSequence::const_iterator cond::IOVSequence::findSince ( cond::Time_t  time) const

Definition at line 97 of file IOVSequence.cc.

References end, ora::PVector< Tp >::end(), find(), iovs(), L1TEmulatorMonitor_cff::p, and cond::rpcobgas::time.

Referenced by exist().

97  {
99  return (p!=iovs().end() && (*p).sinceTime()==time) ? p : iovs().end();
100  }
iterator end()
Definition: PVector.h:67
const_iterator find(cond::Time_t time) const
Definition: IOVSequence.cc:85
Container const & iovs() const
Definition: IOVSequence.cc:54
Container::const_iterator const_iterator
Definition: IOVSequence.h:27
#define end
Definition: vmac.h:38
cond::Time_t cond::IOVSequence::firstSince ( ) const
inline

Definition at line 61 of file IOVSequence.h.

References ora::PVector< Tp >::front(), and iovs().

Referenced by cond::backportIOV(), cond::IOVService::exportIOVRangeWithPayload(), cond::IOVService::isValid(), and cond::IOVService::validity().

61 { return iovs().front().sinceTime();}
Container const & iovs() const
Definition: IOVSequence.cc:54
reference front()
Definition: PVector.h:152
IOVSequence::Container const & cond::IOVSequence::iovs ( ) const
cond::Time_t cond::IOVSequence::lastTill ( ) const
inline
void cond::IOVSequence::loadAll ( ) const

Definition at line 48 of file IOVSequence.cc.

48  {
49  // m_provenance.get();
50  // m_description.get();
51  // m_userMetadata.get();
52  }
std::string const& cond::IOVSequence::metadataToken ( ) const
inline

Definition at line 74 of file IOVSequence.h.

References m_metadata.

Referenced by cond::IOVService::exportIOVRangeWithPayload(), and cond::IOVService::exportIOVWithPayload().

74 { return m_metadata;}
std::string m_metadata
Definition: IOVSequence.h:106
bool cond::IOVSequence::notOrdered ( ) const
inline

Definition at line 72 of file IOVSequence.h.

References m_notOrdered.

72 { return m_notOrdered;}
IOVSequence & cond::IOVSequence::operator= ( IOVSequence const &  rh)

Definition at line 36 of file IOVSequence.cc.

References m_iovs, m_lastTill, m_metadata, m_notOrdered, m_sorted, and m_timetype.

36  {
37  delete m_sorted; m_sorted=0;
38 
39  m_iovs = rh.m_iovs;
40  m_timetype = rh.m_timetype;
41  m_lastTill=rh.m_lastTill;
42  m_notOrdered=rh.m_notOrdered;
43  m_metadata = rh.m_metadata;
44  return *this;
45  }
std::string m_metadata
Definition: IOVSequence.h:106
Container m_iovs
Definition: IOVSequence.h:100
Container * m_sorted
Definition: IOVSequence.h:117
cond::Time_t m_lastTill
Definition: IOVSequence.h:102
Container& cond::IOVSequence::piovs ( )
inline

Definition at line 87 of file IOVSequence.h.

References m_iovs.

Referenced by add(), and truncate().

87 { return m_iovs;}
Container m_iovs
Definition: IOVSequence.h:100
Container const& cond::IOVSequence::piovs ( ) const
inline

Definition at line 88 of file IOVSequence.h.

References m_iovs.

88 { return m_iovs;}
Container m_iovs
Definition: IOVSequence.h:100
IOVSequence::Container const & cond::IOVSequence::sortMe ( ) const
private

Definition at line 60 of file IOVSequence.cc.

References ora::PVector< Tp >::begin(), ora::PVector< Tp >::end(), m_iovs, m_sorted, cond::IOVElement::sinceTime(), and python.multivaluedict::sort().

Referenced by iovs().

60  {
61  delete m_sorted; // shall not be necessary;
62  Container * local = new Container(m_iovs);
63  std::sort(local->begin(), local->end(), boost::bind(std::less<cond::Time_t>(),
64  boost::bind(&Item::sinceTime,_1),
65  boost::bind(&Item::sinceTime,_2)
66  ) );
67  m_sorted = local;
68  return *m_sorted;
69  }
Container m_iovs
Definition: IOVSequence.h:100
cond::Time_t sinceTime() const
Definition: IOVElement.h:21
ora::PVector< Item > Container
Definition: IOVSequence.h:25
Container * m_sorted
Definition: IOVSequence.h:117
cond::TimeType cond::IOVSequence::timeType ( ) const
inline
size_t cond::IOVSequence::truncate ( )

Definition at line 79 of file IOVSequence.cc.

References disorder(), m_notOrdered, piovs(), ora::PVector< Tp >::pop_back(), and ora::PVector< Tp >::size().

Referenced by python.Vispa.Gui.VispaWidget.TextField::calculateDimensions().

79  {
80  if (m_notOrdered) disorder();
81  piovs().pop_back();
82  return piovs().size()-1;
83  }
Container & piovs()
Definition: IOVSequence.h:87
void pop_back()
Definition: PVector.h:182
size_type size() const
Definition: PVector.h:102
void cond::IOVSequence::updateLastTill ( cond::Time_t  till)
inline

Definition at line 65 of file IOVSequence.h.

References m_lastTill.

65 { m_lastTill=till;}
cond::Time_t m_lastTill
Definition: IOVSequence.h:102

Member Data Documentation

Container cond::IOVSequence::m_iovs
private

Definition at line 100 of file IOVSequence.h.

Referenced by iovs(), operator=(), piovs(), and sortMe().

cond::Time_t cond::IOVSequence::m_lastTill
private

Definition at line 102 of file IOVSequence.h.

Referenced by lastTill(), operator=(), and updateLastTill().

std::string cond::IOVSequence::m_metadata
private

Definition at line 106 of file IOVSequence.h.

Referenced by metadataToken(), and operator=().

bool cond::IOVSequence::m_notOrdered
private

Definition at line 104 of file IOVSequence.h.

Referenced by add(), disorder(), iovs(), notOrdered(), operator=(), and truncate().

Container* cond::IOVSequence::m_sorted
mutableprivate

Definition at line 117 of file IOVSequence.h.

Referenced by disorder(), iovs(), operator=(), sortMe(), and ~IOVSequence().

int cond::IOVSequence::m_timetype
private

Definition at line 101 of file IOVSequence.h.

Referenced by operator=(), and timeType().