//----------------------------------------------------------------------------- // // File and Version Information: // $Id: BdbConfigTestXTC.cc,v 1.1 1999/11/29 23:31:22 giorgos Exp $ // // Description: // Class BdbConfigTestXTC -- a sample XTC based class // for Configuration database. // // Environment: // Software developed for the BaBar Detector at the SLAC B-Factory. // // Author List: // George Zioulas // // Copyright Information: // Copyright (C) 1999 SLAC // //----------------------------------------------------------------------------- //----------------------- // This Class's Header -- //----------------------- #include "BdbConfigTests/BdbConfigTestXTC.hh" //------------- // C Headers -- //------------- #include //--------------- // C++ Headers -- //--------------- #include //------------------------------- // Collaborating Class Headers -- //------------------------------- #include "BdbConfig/BdbConfigWriter.hh" #include "BdbConfigTests/BdbConfigTestXTCTransient.hh" //----------------------------------------------------------------------- // Local Macros, Typedefs, Structures, Unions and Forward Declarations -- //----------------------------------------------------------------------- // ----------------------------------------------- // -- Static Data & Function Member Definitions -- // ----------------------------------------------- BdbHandle(BdbConfigTestXTC) BdbConfigTestXTC::create( const BdbConfigTestXTCTransient& transient, BdbConfigWriter* theDatabase, const char* secondaryKey) { assert( 0 != theDatabase ); BdbHandle(BdbConfigTestXTC) outHandle=0; // create a temporary object in a scratch container BdbHandle(BdbConfigTestXTC) inHandle = BdbConfigNew(theDatabase) BdbConfigTestXTC(transient); // // store this object and get a handle to the persistent object back // outHandle = ( BdbHandle(BdbConfigTestXTC)& ) theDatabase->store( inHandle, secondaryKey); // // don't forget to delete the temporary object ! // BdbDelete(inHandle); return outHandle; } // ---------------------------------------- // -- Public Function Member Definitions -- // ---------------------------------------- //---------------- // Constructors -- //---------------- BdbConfigTestXTC::BdbConfigTestXTC() { } BdbConfigTestXTC::BdbConfigTestXTC(const BdbConfigTestXTCTransient& transient) { _a = transient.a(); _b = transient.b(); _c = transient.c(); } //-------------- // Destructor -- //-------------- BdbConfigTestXTC::~BdbConfigTestXTC( ) { } //------------- // Selectors -- //------------- // print method void BdbConfigTestXTC::print(ostream& os, const char* margin) const { // print the general object info first BdbConfigObject::print(os, margin); os << margin << "a : " << _a << endl; os << margin << "b : " << _b << endl; os << margin << "c : " << _c << endl; os << endl; } BdbStatus BdbConfigTestXTC::copy(const BdbHandle(BdbConfigContObj)& containerH, BdbHandle(BdbConfigObject)& newObjectH) { // This is a simple object so it is safe to use a simple method return shallow_copy(containerH,newObjectH); } //------------- // Accessors -- //------------- d_ULong BdbConfigTestXTC::a() const { return _a; } d_ULong BdbConfigTestXTC::b() const { return _b; } d_ULong BdbConfigTestXTC::c() const { return _c; } BdbConfigTestXTCTransient* BdbConfigTestXTC::transient() const { BdbConfigTestXTCTransient* result = new BdbConfigTestXTCTransient(_a,_b,_c); return result; }