Gaudi Framework, version v23r5

Home   Generated: Wed Nov 28 2012
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
NamedRange.h
Go to the documentation of this file.
1 // $Id: NamedRange.h,v 1.1 2008/10/10 08:06:32 marcocle Exp $
2 // ============================================================================
3 #ifndef GAUDI_NAMEDRANGE_H
4 #define GAUDI_NAMEDRANGE_H 1
5 // ============================================================================
6 // Include files
7 // ============================================================================
8 // STD & STL
9 // ============================================================================
10 #include <string>
11 // ============================================================================
12 // GaudiUtils
13 // ============================================================================
14 #include "GaudiKernel/Range.h"
15 // ============================================================================
31 // ============================================================================
32 namespace Gaudi
33 {
34  // ==========================================================================
44  template <class TYPE>
45  class NamedRange_ : public Gaudi::Range_<TYPE>
46  {
47  protected:
48  // ========================================================================
50  typedef Gaudi::Range_<TYPE> Base ;
53  // ========================================================================
54  public:
55  // ========================================================================
57  NamedRange_() : Base() , m_name() {};
63  NamedRange_( typename Base::iterator ibegin ,
64  typename Base::iterator iend ,
65  const std::string& name = "" )
66  : Base ( ibegin , iend ) , m_name ( name ) {} ;
71  NamedRange_( const Base& base ,
72  const std::string& name = "" )
73  : Base ( base ) , m_name ( name ) {};
78  NamedRange_( const typename Base::_Base& base ,
79  const std::string& name = "" )
80  : Base ( base ) , m_name ( name ) {};
85  NamedRange_( const typename Base::Container& base ,
86  const std::string& name = "" )
87  : Base ( base ) , m_name ( name ) {};
88  /* constructor of empty range/sequence
89  * @param ibegin iterator to begin of empty sequence
90  * @param name name of the range
91  */
92  NamedRange_( typename Base::iterator ibegin ,
93  const std::string& name = "" )
94  : Base ( ibegin , ibegin ) , m_name ( name ) {};
97  // ========================================================================
98  public:
99  // ========================================================================
101  inline NamedRange_ slice( long index1 , long index2 ) const
102  { return NamedRange_( Base::slice ( index1 , index2 ) , m_name ) ; }
103  // ========================================================================
104  public:
105  // ========================================================================
107  const std::string& name() const { return m_name ; }
109  void setName( const std::string& value ) { m_name = value ; }
110  // ========================================================================
111  private:
112  // ========================================================================
114  std::string m_name ; // the name associated to the range
115  };
116  // ==========================================================================
130  template <class CONTAINER>
131  inline
133  range ( const CONTAINER& cnt ,
134  const std::string& name )
135  { return NamedRange_<CONTAINER>( cnt.begin() , cnt.end() , name ) ; }
136  // ==========================================================================
137 } // end of namespace Gaudi
138 // ============================================================================
139 // The END
140 // ============================================================================
141 #endif // GAUDI_NAMEDRANGE_H
142 // ============================================================================

Generated at Wed Nov 28 2012 12:17:14 for Gaudi Framework, version v23r5 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004