| The Gaudi Framework v27r1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

PropertyTypeTraits.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_PROPTRAITS_H
2 #define GAUDIKERNEL_PROPTRAITS_H 1
3 // ============================================================================
4 // Include files
5 // ============================================================================
6 // STD & STL
7 // ============================================================================
8 #include <algorithm>
9 // ============================================================================
10 namespace Gaudi
11 {
12 // ==========================================================================
13 namespace Utils
14 {
15 // ========================================================================
43 template <class TYPE>
44 struct PropertyTypeTraits
45 {
46 // =======================================================================
47 typedef TYPE Type ;
48 typedef const TYPE& PRef ;
49 typedef TYPE* PVal ;
50 typedef const TYPE* CVal ;
51 // =======================================================================
53 static PVal new_ () { return new Type( ) ; }
55 static PVal new_ ( const Type& right ) { return new Type(right) ; }
57 static void dele ( PVal right , const bool own )
58 { if ( own ) { delete right ; } }
60 static PVal copy ( PVal* right , const bool own )
61 {
62 if ( !own ) { return right ; }
63 return new_ ( *right ) ;
64 }
66 static void assign ( Type& v1 , PRef v2 ) { v1 = v2 ; }
68 static bool less ( const Type& v1 , const Type& v2 )
69 { return v1 < v2 ; }
70 // ======================================================================
71 } ;
72 // ========================================================================
73 } // end of namespace Gaudi::Utils
74 // ==========================================================================
75 } // end of namespace Gaudi
76 // ============================================================================
77 // The END
78 // ============================================================================
79 #endif // GAUDIKERNEL_PROPTRAITS_H
80 // ============================================================================
Gaudi::Utils::PropertyTypeTraits
helper structure to define the types for properties
Definition: PropertyTypeTraits.h:44
Gaudi::Utils::PropertyTypeTraits::new_
static PVal new_()
some kind of default constructor
Definition: PropertyTypeTraits.h:53
Gaudi::Utils::PropertyTypeTraits::PRef
const TYPE & PRef
Definition: PropertyTypeTraits.h:48
Gaudi::Utils::PropertyTypeTraits::CVal
const TYPE * CVal
Definition: PropertyTypeTraits.h:50
Gaudi::Utils::PropertyTypeTraits::assign
static void assign(Type &v1, PRef v2)
assignment
Definition: PropertyTypeTraits.h:66
Gaudi::Utils::PropertyTypeTraits::less
static bool less(const Type &v1, const Type &v2)
comparison (needed for bounded verifier)
Definition: PropertyTypeTraits.h:68
Gaudi::Utils::PropertyTypeTraits::dele
static void dele(PVal right, const bool own)
"smart" destructor
Definition: PropertyTypeTraits.h:57
Gaudi::Utils::PropertyTypeTraits::copy
static PVal copy(PVal *right, const bool own)
"smart" copy-constructor
Definition: PropertyTypeTraits.h:60
Gaudi::Utils::PropertyTypeTraits::PVal
TYPE * PVal
Definition: PropertyTypeTraits.h:49
Gaudi
Helper functions to set/get the application return code.
Definition: __init__.py:1
Gaudi::Utils::PropertyTypeTraits::new_
static PVal new_(const Type &right)
some kind of copy constructor
Definition: PropertyTypeTraits.h:55
Gaudi::Utils::PropertyTypeTraits::Type
TYPE Type
Definition: PropertyTypeTraits.h:47