Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 10:15:08

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
0003 *                                                                                   *
0004 * This software is distributed under the terms of the Apache version 2 licence,     *
0005 * copied verbatim in the file "LICENSE".                                            *
0006 *                                                                                   *
0007 * In applying this licence, CERN does not waive the privileges and immunities       *
0008 * granted to it by virtue of its status as an Intergovernmental Organization        *
0009 * or submit itself to any jurisdiction.                                             *
0010 \***********************************************************************************/
0011 #pragma once
0012 
0013 #include <Gaudi/Property.h>
0014 #include <GaudiKernel/StatusCode.h>
0015 
0016 #include <iostream>
0017 
0018 namespace Gaudi {
0019   class DataHandle;
0020 }
0021 
0022 //---------------------------------------------------------------------------
0023 
0024 /** DataHandleProperty.h GaudiKernel/DataHandleProperty.h
0025  *
0026  * Helper class to manage DataHandles and DataHandleColls as properties
0027  *
0028  * @author Charles Leggett
0029  * @date   2015-09-01
0030  */
0031 
0032 //---------------------------------------------------------------------------
0033 
0034 class GAUDI_API DataHandleProperty : public PropertyWithHandlers<> {
0035 public:
0036   DataHandleProperty( const std::string& name, Gaudi::DataHandle& ref );
0037   DataHandleProperty& operator=( const Gaudi::DataHandle& value );
0038 
0039   DataHandleProperty*      clone() const override;
0040   bool                     load( Gaudi::Details::PropertyBase& destination ) const override;
0041   bool                     assign( const Gaudi::Details::PropertyBase& source ) override;
0042   std::string              toString() const override;
0043   void                     toStream( std::ostream& out ) const override;
0044   StatusCode               fromString( const std::string& s ) override;
0045   const Gaudi::DataHandle& value() const;
0046   bool                     setValue( const Gaudi::DataHandle& value );
0047 
0048 protected:
0049   /** Pointer to the real property. Reference would be better,
0050    *  but Reflex does not support references yet
0051    */
0052   Gaudi::DataHandle* m_pValue = nullptr;
0053 };