Gaudi Framework, version v25r0
Home
Generated: Mon Feb 17 2014
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
DataStoreItem.h
Go to the documentation of this file.
1
// $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiKernel/GaudiKernel/DataStoreItem.h,v 1.2 2000/12/13 12:57:12 mato Exp $
2
#ifndef GAUDIKERNEL_DATASTOREITEM_H
3
#define GAUDIKERNEL_DATASTOREITEM_H
4
5
// STL include files
6
#include <
string
>
7
18
class
DataStoreItem
{
19
protected
:
21
std::string
m_path
;
23
int
m_depth
;
24
public
:
26
DataStoreItem
(
const
std::string
&
path
,
int
depth
= 1)
27
:
m_path
(path),
m_depth
(
depth
) {
28
analyse
();
29
}
31
DataStoreItem
(
const
DataStoreItem
&
item
)
32
:
m_path
(item.
m_path
),
m_depth
(item.
m_depth
) {
33
analyse
();
34
}
36
virtual
~DataStoreItem
() {
37
}
39
bool
operator==
(
const
DataStoreItem
& cmp)
const
{
40
return
m_path
== cmp.
path
() &&
m_depth
== cmp.
depth
();
41
}
43
bool
operator!=
(
const
DataStoreItem
& cmp)
const
{
44
return
! (
m_path
== cmp.
path
() &&
m_depth
== cmp.
depth
() );
45
}
47
DataStoreItem
&
operator=
(
const
DataStoreItem
& cmp) {
48
m_path
= cmp.
path
();
49
m_depth
= cmp.
depth
();
50
analyse
();
51
return
*
this
;
52
}
54
void
analyse
() {
55
int
len =
m_path
.length()-1;
56
if
(
m_path
[len] ==
'*'
) {
57
m_depth
= 99999999;
58
(
m_path
[len-1] ==
'/'
) ?
m_path
.erase(len-1, 2) :
m_path
.erase(len, 1);
59
}
60
else
if
(
m_path
[len] ==
'+'
) {
61
(
m_path
[len-1] ==
'/'
) ?
m_path
.erase(len-1, 2) :
m_path
.erase(len, 1);
62
m_depth
= 2;
63
}
64
}
66
const
std::string
&
path
()
const
{
67
return
m_path
;
68
}
70
int
depth
()
const
{
71
return
m_depth
;
72
}
73
};
74
#endif // GAUDIKERNEL_DATASTOREITEM_H
Generated at Mon Feb 17 2014 14:37:42 for Gaudi Framework, version v25r0 by
Doxygen
version 1.8.2 written by
Dimitri van Heesch
, © 1997-2004