3 #ifndef GAUDIKERNEL_STDARRAYASPROPERTY_H
4 #define GAUDIKERNEL_STDARRAYASPROPERTY_H 1
33 template <
class ITERATOR>
38 const std::string& open ,
39 const std::string& close ,
40 const std::string& delim ) ;
50 template <
class TYPE, std::
size_t N>
52 (
const std::array<TYPE,N>& obj , std::ostream&
s )
55 ( obj.begin () , obj.end () ,
s ,
" ( " ,
" )" ,
" , " ) ;
81 template <
class TYPE, std::
size_t N>
83 parse ( std::array<TYPE,N>& result ,
const std::string& input )
85 typedef std::vector<TYPE> _Vct ;
91 if (
N != tmp.size() )
94 std::copy ( tmp.begin() , tmp.end() , result.begin() ) ;
121 template <
class T, std::
size_t N>
134 PVal tmp =
new Type ;
135 std::fill_n ( tmp->begin() ,
N , T() ) ;
139 static PVal
new_ (
const Type& right )
141 PVal tmp =
new Type ;
146 static void dele ( PVal right ,
const bool own )
147 {
if ( own ) {
delete right ; } }
149 static PVal
copy ( PVal right ,
const bool own )
151 if ( !own ) {
return right ; }
152 return new_ ( *right ) ;
155 static void assign ( Type& v1 ,
const Type& v2 )
156 { std::copy ( v2.begin() , v2.end() , v1.begin() ) ; }
158 static bool less (
const Type& v1 ,
const Type& v2 )
159 {
return std::lexicographical_compare
160 ( v1.begin() , v1.end () , v2.begin() , v2.end() ) ; }
170 #endif // GAUDIKERNEL_STDARRAYASPROPERTY_H
helper structure to define the types for properties
static PVal copy(PVal right, const bool own)
"smart" copy-constructor
The declaration of major parsing functions used e.g for (re)implementation of new extended properties...
static PVal new_()
some kind of default constructor
StatusCode parse(GaudiUtils::HashMap< K, V > &result, const std::string &input)
Basic parser for the types of HashMap used in DODBasicMapper.
bool isFailure() const
Test for a status code of FAILURE.
static void dele(PVal right, const bool own)
"smart" destructor
static bool less(const Type &v1, const Type &v2)
comparison (needed for bounded verifier) NON-TRIVIAL
std::ostream & toStream(ITERATOR first, ITERATOR last, std::ostream &s, const std::string &open, const std::string &close, const std::string &delim)
the helper function to print the sequence
static void assign(Type &v1, PRef v2)
assignment
This class is used for returning status codes from appropriate routines.
static PVal new_()
some kind of default constructor NON-TRIVIAL
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
static PVal new_(const Type &right)
some kind of copy constructor NON-TRIVIAL
Helper functions to set/get the application return code.
static void assign(Type &v1, const Type &v2)
assignement NON-TRIVIAL