CMS 3D CMS Logo

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

#include <PayloadProxy.h>

Inheritance diagram for cond::BasePayloadProxy:
cond::PayloadProxy< DataT > cond::PayloadProxy< std::vector< cond::Time_t > > cond::PayloadProxy< cond::KeyList >

Classes

struct  ObjId
 
struct  Stats
 

Public Types

typedef std::vector< ObjIdObjIds
 

Public Member Functions

 BasePayloadProxy (cond::DbSession &session, const std::string &token, bool errorPolicy)
 
virtual void invalidateCache ()=0
 
IOVProxy const & iov () const
 
bool isValid () const
 
cond::ValidityInterval loadFor (cond::Time_t time)
 
cond::ValidityInterval loadFor (size_t n)
 
virtual void loadMore (CondGetter const &)
 
void make ()
 
bool refresh ()
 
cond::ValidityInterval setIntervalFor (cond::Time_t time)
 
TimeType timetype () const
 
std::string const & token () const
 
virtual ~BasePayloadProxy ()
 

Public Attributes

Stats stats
 

Static Public Attributes

static Stats gstats = {0,0,0}
 

Protected Attributes

bool m_doThrow
 
IOVElementProxy m_element
 
IOVProxy m_iov
 
std::string m_token
 

Private Member Functions

virtual bool load (cond::DbSession &session, std::string const &token)=0
 

Detailed Description

Definition at line 23 of file PayloadProxy.h.

Member Typedef Documentation

typedef std::vector<ObjId> cond::BasePayloadProxy::ObjIds

Definition at line 31 of file PayloadProxy.h.

Constructor & Destructor Documentation

cond::BasePayloadProxy::BasePayloadProxy ( cond::DbSession session,
const std::string &  token,
bool  errorPolicy 
)

Definition at line 24 of file PayloadProxy.cc.

References gstats, cond::BasePayloadProxy::Stats::nProxy, asciidump::s, and stats.

26  :
27  m_doThrow(errorPolicy), m_iov(session,token,true,false) {
28  ++gstats.nProxy;
29  BasePayloadProxy::Stats s = {0,0,0,ObjIds()};
30  stats = s;
31  }
std::vector< ObjId > ObjIds
Definition: PayloadProxy.h:31
string s
Definition: asciidump.py:422
std::string const & token() const
Definition: PayloadProxy.h:54
cond::BasePayloadProxy::~BasePayloadProxy ( )
virtual

Definition at line 34 of file PayloadProxy.cc.

34 {}

Member Function Documentation

virtual void cond::BasePayloadProxy::invalidateCache ( )
pure virtual
IOVProxy const& cond::BasePayloadProxy::iov ( ) const
inline

Definition at line 72 of file PayloadProxy.h.

References m_iov.

72 { return m_iov;}
bool cond::BasePayloadProxy::isValid ( void  ) const

Definition at line 89 of file PayloadProxy.cc.

References cond::invalidTime(), m_element, cond::IOVElementProxy::since(), cond::IOVElementProxy::till(), and cond::IOVElementProxy::token().

Referenced by make().

89  {
91  && !m_element.token().empty();
92  }
IOVElementProxy m_element
Definition: PayloadProxy.h:87
cond::Time_t till() const
Definition: IOVProxy.h:39
std::string const & token() const
Definition: IOVProxy.h:40
const Time_t invalidTime(0)
cond::Time_t since() const
Definition: IOVProxy.h:38
virtual bool cond::BasePayloadProxy::load ( cond::DbSession session,
std::string const &  token 
)
privatepure virtual
cond::ValidityInterval cond::BasePayloadProxy::loadFor ( cond::Time_t  time)

Definition at line 36 of file PayloadProxy.cc.

References cond::IOVProxy::find(), m_element, m_iov, make(), cond::IOVElementProxy::since(), and cond::IOVElementProxy::till().

36  {
38  make();
40  }
IOVElementProxy m_element
Definition: PayloadProxy.h:87
std::pair< Time_t, Time_t > ValidityInterval
Definition: Time.h:19
cond::Time_t till() const
Definition: IOVProxy.h:39
const_iterator find(cond::Time_t time) const
Definition: IOVProxy.cc:112
cond::Time_t since() const
Definition: IOVProxy.h:38
cond::ValidityInterval cond::BasePayloadProxy::loadFor ( size_t  n)

Definition at line 42 of file PayloadProxy.cc.

References cond::IOVProxy::iov(), m_element, m_iov, make(), n, cond::IOVElementProxy::set(), cond::IOVElementProxy::since(), and cond::IOVElementProxy::till().

42  {
43  m_element.set(m_iov.iov(),n);
44  make();
46  }
IOVElementProxy m_element
Definition: PayloadProxy.h:87
std::pair< Time_t, Time_t > ValidityInterval
Definition: Time.h:19
cond::Time_t till() const
Definition: IOVProxy.h:39
void set(cond::Time_t is, cond::Time_t it, std::string const &itoken)
Definition: IOVProxy.h:30
IOV const & iov() const
Definition: IOVProxy.cc:125
cond::Time_t since() const
Definition: IOVProxy.h:38
virtual void cond::BasePayloadProxy::loadMore ( CondGetter const &  )
inlinevirtual

Reimplemented in cond::PayloadProxy< cond::KeyList >.

Definition at line 74 of file PayloadProxy.h.

74 {}
void cond::BasePayloadProxy::make ( )

Definition at line 49 of file PayloadProxy.cc.

References cond::DbTransaction::commit(), cond::IOVElementProxy::db(), edm::hlt::Exception, gstats, cond::BasePayloadProxy::Stats::ids, cond::invalidTime(), isValid(), load(), m_doThrow, m_element, m_token, cond::BasePayloadProxy::Stats::nLoad, cond::BasePayloadProxy::Stats::nMake, convertSQLiteXML::ok, cond::IOVElementProxy::set(), cond::IOVElementProxy::since(), cond::DbTransaction::start(), stats, cond::IOVElementProxy::token(), token(), cond::DbSession::transaction(), and cms::Exception::what().

Referenced by loadFor().

49  {
50  ++gstats.nMake;
51  ++stats.nMake;
52  bool ok = false;
53  if ( isValid()) {
54  // check if (afterall) the payload is still the same...
55  if (m_element.token()==token()) return;
57  trans.start(true);
58  try {
59  ok = load( m_element.db(),m_element.token());
60  if (ok) m_token = m_element.token();
61  } catch( const ora::Exception& e) {
62  if (m_doThrow) throw cond::Exception(std::string("Condition Payload loader: ")+ e.what());
63  ok = false;
64  }
65  trans.commit();
66  }
67 
68  if (!ok) {
70  m_token.clear();
71  if (m_doThrow)
72  throw cond::Exception("Condition Payload loader: invalid data");
73  }
74  if (ok) {
75  ++gstats.nLoad; ++stats.nLoad;
76  stats.ids.push_back(ObjId());
77  fillIt(stats.ids.back(),m_token, m_element.since());
78  }
79  }
IOVElementProxy m_element
Definition: PayloadProxy.h:87
virtual char const * what() const
Definition: Exception.cc:97
bool isValid() const
Definition: PayloadProxy.cc:89
DbTransaction & transaction()
Definition: DbSession.cc:153
int commit()
commit transaction.
Base exception class for the object to relational access.
Definition: Exception.h:9
int start(bool readOnly=false)
start transaction
void set(cond::Time_t is, cond::Time_t it, std::string const &itoken)
Definition: IOVProxy.h:30
std::string const & token() const
Definition: IOVProxy.h:40
const Time_t invalidTime(0)
virtual bool load(cond::DbSession &session, std::string const &token)=0
cond::Time_t since() const
Definition: IOVProxy.h:38
cond::DbSession & db() const
Definition: IOVProxy.h:42
std::string const & token() const
Definition: PayloadProxy.h:54
bool cond::BasePayloadProxy::refresh ( )

Definition at line 95 of file PayloadProxy.cc.

References m_element, m_iov, and cond::IOVProxy::refresh().

Referenced by python.Vispa.Main.TabController.TabController::checkModificationTimestamp().

95  {
96  bool anew = m_iov.refresh();
97  if (anew) m_element = IOVElementProxy();
98  return anew;
99  }
IOVElementProxy m_element
Definition: PayloadProxy.h:87
bool refresh()
Definition: IOVProxy.cc:80
cond::ValidityInterval cond::BasePayloadProxy::setIntervalFor ( cond::Time_t  time)

Definition at line 82 of file PayloadProxy.cc.

References cond::IOVProxy::find(), m_element, m_iov, cond::IOVElementProxy::since(), and cond::IOVElementProxy::till().

82  {
83  //FIXME: shall handle truncation...
84  if ( (!(time<m_element.till())) || time<m_element.since() )
87  }
IOVElementProxy m_element
Definition: PayloadProxy.h:87
std::pair< Time_t, Time_t > ValidityInterval
Definition: Time.h:19
cond::Time_t till() const
Definition: IOVProxy.h:39
const_iterator find(cond::Time_t time) const
Definition: IOVProxy.cc:112
cond::Time_t since() const
Definition: IOVProxy.h:38
TimeType cond::BasePayloadProxy::timetype ( ) const
inline

Definition at line 70 of file PayloadProxy.h.

References m_iov, and cond::IOVProxy::timetype().

70 { return m_iov.timetype();}
TimeType timetype() const
Definition: IOVProxy.cc:129
std::string const& cond::BasePayloadProxy::token ( ) const
inline

Definition at line 54 of file PayloadProxy.h.

References m_token.

Referenced by make().

54 { return m_token;}

Member Data Documentation

BasePayloadProxy::Stats cond::BasePayloadProxy::gstats = {0,0,0}
static

Definition at line 40 of file PayloadProxy.h.

Referenced by BasePayloadProxy(), make(), and CondDBESSource::~CondDBESSource().

bool cond::BasePayloadProxy::m_doThrow
protected

Definition at line 85 of file PayloadProxy.h.

Referenced by make().

IOVElementProxy cond::BasePayloadProxy::m_element
protected

Definition at line 87 of file PayloadProxy.h.

Referenced by isValid(), loadFor(), make(), refresh(), and setIntervalFor().

IOVProxy cond::BasePayloadProxy::m_iov
protected

Definition at line 86 of file PayloadProxy.h.

Referenced by iov(), loadFor(), refresh(), setIntervalFor(), and timetype().

std::string cond::BasePayloadProxy::m_token
protected
Stats cond::BasePayloadProxy::stats

Definition at line 42 of file PayloadProxy.h.

Referenced by BasePayloadProxy(), and make().