ATLAS Offline Software
Identifiable.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /***************************************************************************
6  Identifier Package
7  -----------------------------------------
8  ***************************************************************************/
9 
10 //<doc><file> $Id: Identifiable.h,v 1.4 2002-09-20 11:40:48 schaffer Exp $
11 //<version> $Name: not supported by cvs2svn $
12 
13 #ifndef IDENTIFIER_IDENTIFIABLE_H
14 # define IDENTIFIER_IDENTIFIABLE_H
15 
16 //<<<<<< INCLUDES >>>>>>
17 //<<<<<< PUBLIC DEFINES >>>>>>
18 //<<<<<< PUBLIC CONSTANTS >>>>>>
19 //<<<<<< PUBLIC TYPES >>>>>>
20 
21 class Identifier;
22 class IdentifierHash;
23 class IdHelper;
24 
25 //<<<<<< PUBLIC VARIABLES >>>>>>
26 //<<<<<< PUBLIC FUNCTIONS >>>>>>
27 //<<<<<< CLASS DECLARATIONS >>>>>>
28 
29 //
30 // class Identifiable
31 //
32 // This class provides an abstract interface to an Identifiable
33 // object.
34 //
35 // It is "identifiable" in the sense that each object must have
36 // an identify method returning an Identifier.
37 //
38 // The interface also is extended to also provide access to a "hash"
39 // form of an identifier. And there is the possiblity to add a
40 // conversion strategy to allow conversion from Identifier <->
41 // IdentifierHash.
42 //
43 
45 {
46 public:
47 
48  virtual ~Identifiable(void) = default;
49 
50  virtual Identifier identify() const = 0;
51 
52  virtual IdentifierHash identifyHash() const;
53 
54  virtual const IdHelper* getHelper() const;
55 };
56 
57 
58 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>>
59 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>>
60 
61 #endif // IDENTIFIER_IDENTIFIABLE_H
Identifiable::~Identifiable
virtual ~Identifiable(void)=default
Identifiable::getHelper
virtual const IdHelper * getHelper() const
Definition: Identifiable.cxx:29
IdHelper
Definition: IdHelper.h:39
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
Identifiable
Definition: Identifiable.h:45
IdentifierHash
Definition: IdentifierHash.h:38
Identifiable::identify
virtual Identifier identify() const =0
Identifiable::identifyHash
virtual IdentifierHash identifyHash() const
Definition: Identifiable.cxx:21