#include <CdbBdb2RooNTupleConverter.hh>
Inheritance diagram for CdbBdb2RooNTupleConverter< P, R, P_ELEMENT_CONVERSION_RULES, R_ELEMENT_CONVERSION_RULES >:

Public Member Functions | |
| CdbBdb2RooNTupleConverter () | |
| Default constructor. | |
Protected Member Functions | |
| virtual CdbStatus | userDefinedConversion (const BdbRef(BdbObject)&theInputObjectRef, R *&theOutputObjectPtr) const |
| Implement a user-defined conversion. | |
This class represents a family of converters based on types of persistent classes passed as template parameters.
The parameters of the template are:
'P' - the input "Bdb" object type. This type should be a model of CDB persistent N-Tuples based on an abstract interface of the CdbBdbNTupleP class.
'R' - the output "Roo" object type. The actual type has to be a model of the 'CdbRooNTupleR< R::element_type >' class.
'P_ELEMENT_CONVERSION_RULES' - rules for converting a persistent element type into its transient counterpart for the "Bdb" technology.
'R_ELEMENT_CONVERSION_RULES' - rules for converting a persistent element type into its transient counterpart for the "Roo" technology.
Tests for a compatibility of actual types used as template parameters will be be performed both at a compilation and run time.
By default the converter will be using default conversion rules for element types, which is good for elementary types. For complex user defined types the corresponding element type converters must be provided.
CLASS DESIGN NOTES:
1. The persistent type verification is performed by the direct base class of the converter and in the c-tor of the current class (for a compliance with the model of Generic N-tuples).
2. All (but the default) class's constructors, its assignment operator, and its destructor are generated automatically by a C++ compiler. They're all public.
3. Two element conversion rules (one for each technology) are needed to avoid knowing direct element type conversion rules like:
P::ElementType -> R::ElementType
We're replacing this with an indirect (through a common transient) type conversion chain:
P::ElementType -> T -> R::ElementType
See more details in the implementation file of the class.
Definition at line 71 of file CdbBdb2RooNTupleConverter.hh.
|
|||||||||
|
Default constructor. It will perform additional type checking for the specified persistent types. Definition at line 40 of file CdbBdb2RooNTupleConverter.cc. References CdbBdbSchemaUtils::instance(), CdbBdbSchemaUtils::isA(), and CdbBdbSchemaUtils::typeNumberToClassName(). |
|
||||||||||||||||
|
Implement a user-defined conversion. Implements the corresponding method from the base class or interface.
Implements CdbBdb2RooPayloadConverter< P, R >. Definition at line 96 of file CdbBdb2RooNTupleConverter.cc. References BdbRef(), CdbStatus::Error, and CdbStatus::Success. |
1.3-rc3