Belle II Software development
|
Class to access a DB Array from Python. More...
#include <PyDBArray.h>
Public Member Functions | |
PyDBArray (const std::string &name, bool required=true) | |
Construct the array from the name of the payload. | |
PyDBArray (const TClass *objClass, bool required=true) | |
Construct the array from the type of the payload, payload name will be the class name. | |
PyDBArray (const std::string &name, const TClass *objClass, bool required=true) | |
Construct the array from the name of the payload and make sure the class if compatible with objClass. | |
int | getEntries () const |
Get the number of entries. | |
int | __len__ () const |
Get the number of entries in a pythonic way to enable len(array) | |
const TObject * | _get (int i) const |
Element access. | |
PyObject * | getIntraRunBoundariesList () const |
Get the intra-run boundaries, if any, as a python list. | |
bool | isValid () const |
Check whether a valid object was obtained from the database. | |
bool | hasChanged () |
Check whether the object has changed since the last call to hasChanged of the accessor). | |
Private Member Functions | |
const std::string & | getName () const |
Return name under which the object is saved in the DBStore. | |
operator bool () const | |
Imitate pointer functionality. | |
virtual bool | operator== (const DBAccessorBase &other) const |
Check if two store accessors point to the same object/array. | |
virtual bool | operator!= (const DBAccessorBase &other) const |
Check if two store accessors point to a different object/array. | |
void | addCallback (std::function< void(const std::string &)> callback, bool onDestruction=false) |
Add a callback method. | |
void | addCallback (std::function< void()> callback, bool onDestruction=false) |
Add a callback method. | |
template<class T > | |
void | addCallback (T *object, void(T::*callback)()) |
Add a callback method of an object. | |
const std::string & | getGlobaltag () const |
Return the globaltag name (or testing payloads path) this object is loaded from. | |
unsigned int | getRevision () const |
Return current revision of the object. | |
IntervalOfValidity | getIoV () const |
Return current IoV of the object. | |
const std::string & | getChecksum () const |
Get current checksum. | |
const std::string & | getFilename () const |
Get the filename this object is loaded from. | |
bool | isIntraRunDependent () const |
Check wether this conditions object has some intra-run dependencies. | |
const std::vector< unsigned int > | getIntraRunBoundaries () const |
Get the intra-run boundaries, if any. | |
bool | isRequired () const |
Check whether this conditions object is required (at least one user declared it as required) | |
template<class T = TObject> | |
const T * | getObject () const |
Return a pointer to the Object already cast to the correct type. | |
bool | ensureAttached () const |
Make sure we are attached to the the DBStore. | |
void | storeEntryChanged (bool destructed) |
Callback function which gets called by the DBStoreEntry object if it changes. | |
Private Attributes | |
const DBStoreEntry::EPayloadType | m_type |
Type of the payload. | |
const std::string | m_name |
Name of the payload in the database. | |
const TClass * | m_objClass |
Class of the payload if type is c_Object. | |
const bool | m_isArray |
True if the payload is an array of objects. | |
const bool | m_isRequired |
True if the payload is required, otherwise no errors will be raised if it cannot be found. | |
DBStoreEntry * | m_entry |
Pointer to the entry in the DBStore. | |
bool | m_changed {false} |
Internal flag whether the object has changed since we last checked. | |
std::vector< std::pair< std::function< void(const std::string &)>, bool > > | m_callbacks |
List of all registered callback functions. | |
Class to access a DB Array from Python.
In contrast to the C++ DBArray we don't have templates but python will handle the typing dynamically.
PyDBArray
objects are only usable during event flow, that is in the initialize()
or event()
calls of a module as there is no Conditions data available otherwise.Definition at line 43 of file PyDBArray.h.
|
explicit |
Construct the array from the name of the payload.
Definition at line 44 of file PyDBArray.cc.
|
explicit |
Construct the array from the type of the payload, payload name will be the class name.
Definition at line 46 of file PyDBArray.cc.
|
explicit |
Construct the array from the name of the payload and make sure the class if compatible with objClass.
Definition at line 48 of file PyDBArray.cc.
|
inline |
Get the number of entries in a pythonic way to enable len(array)
Definition at line 61 of file PyDBArray.h.
const TObject * _get | ( | int | i | ) | const |
Element access.
Sadly the const in the return value is lost in python so this is a protected method and we add a pure python method to wrap the object in something to guarantee constness in framework/scripts/basf2.py
Definition at line 34 of file PyDBArray.cc.
|
inlineinherited |
Add a callback method.
The given method will be called whenever there is a new database entry for this DBAccessor.
callback | function pointer to a callback function |
onDestruction | if true the callback will not be called for each change but only when the Database entry is deleted and can be used to remove dangling pointers to the entry. |
Definition at line 118 of file DBAccessorBase.h.
|
inlineinherited |
Add a callback method.
The given method will be called whenever there is a new database entry for this DBAccessor. The one parameter is the name of the DB entry which changed (in case the same callback method is to be used for multiple payloads.
callback | function pointer to a callback function |
onDestruction | if true the callback will not be called for each change but only when the Database entry is deleted and can be used to remove dangling pointers to the entry. |
Definition at line 105 of file DBAccessorBase.h.
|
inlineinherited |
Add a callback method of an object.
The given method will be called whenever there is a new database entry for this DBAccessor.
object | The object with the callback method. |
callback | The callback method. |
Definition at line 130 of file DBAccessorBase.h.
|
inlineprotectedinherited |
Make sure we are attached to the the DBStore.
If not try to reconnect
Definition at line 171 of file DBAccessorBase.h.
|
inlineinherited |
Get current checksum.
Definition at line 145 of file DBAccessorBase.h.
int getEntries | ( | ) | const |
Get the number of entries.
Definition at line 39 of file PyDBArray.cc.
|
inlineinherited |
Get the filename this object is loaded from.
Definition at line 148 of file DBAccessorBase.h.
|
inlineinherited |
Return the globaltag name (or testing payloads path) this object is loaded from.
Definition at line 136 of file DBAccessorBase.h.
|
inlineinherited |
Get the intra-run boundaries, if any.
If the intra-run dependency is by event number, the event numbers used as boundaries are returned.
Definition at line 157 of file DBAccessorBase.h.
PyObject * getIntraRunBoundariesList | ( | ) | const |
Get the intra-run boundaries, if any, as a python list.
Definition at line 51 of file PyDBArray.cc.
|
inlineinherited |
Return current IoV of the object.
Definition at line 142 of file DBAccessorBase.h.
|
inlineinherited |
Return name under which the object is saved in the DBStore.
Definition at line 66 of file DBAccessorBase.h.
|
inlineprotectedinherited |
Return a pointer to the Object already cast to the correct type.
Definition at line 164 of file DBAccessorBase.h.
|
inlineinherited |
Return current revision of the object.
Definition at line 139 of file DBAccessorBase.h.
|
inline |
Check whether the object has changed since the last call to hasChanged of the accessor).
Definition at line 89 of file DBAccessorBase.h.
|
inlineinherited |
Check wether this conditions object has some intra-run dependencies.
Definition at line 151 of file DBAccessorBase.h.
|
inlineinherited |
Check whether this conditions object is required (at least one user declared it as required)
Definition at line 160 of file DBAccessorBase.h.
|
inline |
Check whether a valid object was obtained from the database.
Definition at line 72 of file DBAccessorBase.h.
|
inlineinherited |
Imitate pointer functionality.
Definition at line 74 of file DBAccessorBase.h.
|
inlinevirtualinherited |
Check if two store accessors point to a different object/array.
Definition at line 83 of file DBAccessorBase.h.
|
inlinevirtualinherited |
Check if two store accessors point to the same object/array.
Definition at line 77 of file DBAccessorBase.h.
|
inlineprotectedinherited |
Callback function which gets called by the DBStoreEntry object if it changes.
Definition at line 184 of file DBAccessorBase.h.
|
protectedinherited |
List of all registered callback functions.
Definition at line 213 of file DBAccessorBase.h.
|
mutableprotectedinherited |
Internal flag whether the object has changed since we last checked.
Definition at line 211 of file DBAccessorBase.h.
|
mutableprotectedinherited |
Pointer to the entry in the DBStore.
Definition at line 209 of file DBAccessorBase.h.
|
protectedinherited |
True if the payload is an array of objects.
Definition at line 205 of file DBAccessorBase.h.
|
protectedinherited |
True if the payload is required, otherwise no errors will be raised if it cannot be found.
Definition at line 207 of file DBAccessorBase.h.
|
protectedinherited |
Name of the payload in the database.
Definition at line 201 of file DBAccessorBase.h.
|
protectedinherited |
Class of the payload if type is c_Object.
Definition at line 203 of file DBAccessorBase.h.
|
protectedinherited |
Type of the payload.
Definition at line 199 of file DBAccessorBase.h.