Gaudi Framework, version v23r5
Home
Generated: Wed Nov 28 2012
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
GaudiKernel
GaudiKernel
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
;
52
typedef
NamedRange_<TYPE>
Self
;
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
) {};
96
~NamedRange_
(){};
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
132
NamedRange_<CONTAINER>
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