Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:07:15

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2019 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 #ifndef GAUDIKERNEL_IOPAQUEADDRESS_H
0012 #define GAUDIKERNEL_IOPAQUEADDRESS_H
0013 
0014 // STL include files
0015 #include <string>
0016 
0017 // Experiment specific include files
0018 #include "GaudiKernel/ClassID.h"
0019 #include "GaudiKernel/Kernel.h"
0020 
0021 // forward declarations
0022 class IRegistry;
0023 
0024 /** @class IOpaqueAddress IOpaqueAddress.h GaudiKernel/IOpaqueAddress.h
0025 
0026     Opaque address interface definition.
0027     The opaque address defines the behaviour necesary to load
0028     and store transient objects.
0029 
0030     @author M.Frank
0031     @version 1.0
0032 */
0033 class GAUDI_API IOpaqueAddress {
0034 public:
0035   /// destructor
0036   virtual ~IOpaqueAddress() = default;
0037 
0038   /// Add reference to object
0039   virtual unsigned long addRef() = 0;
0040   /// release reference to object
0041   virtual unsigned long release() = 0;
0042   /// Retrieve class information from link
0043   virtual const CLID& clID() const = 0;
0044   /// Retrieve service type
0045   virtual long svcType() const = 0;
0046   /// Update branch name
0047   virtual IRegistry* registry() const = 0;
0048   /// Update directory pointer
0049   virtual void setRegistry( IRegistry* r ) = 0;
0050   /// Retrieve String parameters
0051   virtual const std::string* par() const = 0;
0052   /// Access to generic link parameters
0053   virtual const unsigned long* ipar() const = 0;
0054 };
0055 #endif // GAUDIKERNEL_IOPAQUEADDRESS_H