Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:00:30

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2021 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_ICLASSIDSVC_H
0012 #define GAUDIKERNEL_ICLASSIDSVC_H
0013 
0014 #include <string>
0015 
0016 #include "GaudiKernel/ClassID.h"
0017 #include "GaudiKernel/IService.h"
0018 #include "GaudiKernel/StatusCode.h"
0019 
0020 /** @class IClassIDSvc
0021  *  @brief  interface to the CLID database
0022  *  @author Paolo Calafiura <pcalafiura@lbl.gov> - ATLAS Collaboration
0023  */
0024 
0025 class IClassIDSvc : virtual public IService {
0026 public:
0027   /// InterfaceID
0028   DeclareInterfaceID( IClassIDSvc, 1, 0 );
0029 
0030   /// get next available CLID
0031   /// @throws std::runtime_error if no CLID can be allocated
0032   virtual CLID nextAvailableID() const = 0;
0033   /// check if id is used
0034   virtual bool isIDInUse( const CLID& id ) const = 0;
0035   /// check if name is used
0036   virtual bool isNameInUse( const std::string& name ) const = 0;
0037   /// get user assigned type name associated with clID
0038   virtual StatusCode getTypeNameOfID( const CLID& id, std::string& typeName ) const = 0;
0039   /// get user assigned type-info name associated with clID
0040   virtual StatusCode getTypeInfoNameOfID( const CLID& id, std::string& typeInfoName ) const = 0;
0041   /// get id associated with type name (if any)
0042   virtual StatusCode getIDOfTypeName( const std::string& typeName, CLID& id ) const = 0;
0043   /// get id associated with type-info name (if any)
0044   virtual StatusCode getIDOfTypeInfoName( const std::string& typeInfoName, CLID& id ) const = 0;
0045   /// associate type name and type-info name with clID
0046   virtual StatusCode setTypeForID( const CLID&, const std::string& typeName, const std::string& typeInfoName = "" ) = 0;
0047 };
0048 
0049 #endif // GAUDIKERNEL_ICLASSIDSVC_H