xc
src
utility
tagged
DefaultTag.h
1
// -*-c++-*-
2
//----------------------------------------------------------------------------
3
// XC program; finite element analysis code
4
// for structural analysis and design.
5
//
6
// Copyright (C) Luis C. Pérez Tato
7
//
8
// This program derives from OpenSees <http://opensees.berkeley.edu>
9
// developed by the «Pacific earthquake engineering research center».
10
//
11
// Except for the restrictions that may arise from the copyright
12
// of the original program (see copyright_opensees.txt)
13
// XC is free software: you can redistribute it and/or modify
14
// it under the terms of the GNU General Public License as published by
15
// the Free Software Foundation, either version 3 of the License, or
16
// (at your option) any later version.
17
//
18
// This software is distributed in the hope that it will be useful, but
19
// WITHOUT ANY WARRANTY; without even the implied warranty of
20
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
// GNU General Public License for more details.
22
//
23
//
24
// You should have received a copy of the GNU General Public License
25
// along with this program.
26
// If not, see <http://www.gnu.org/licenses/>.
27
//----------------------------------------------------------------------------
28
29
#ifndef DefaultTag_h
30
#define DefaultTag_h
31
32
33
namespace
XC
{
35
//
37
class
DefaultTag
38
{
39
private
:
40
int
default_tag;
//<! tag for the new entity.
41
public
:
42
// constructors
43
inline
DefaultTag
(
int
tag= 0)
44
: default_tag(tag) {}
45
46
inline
DefaultTag
&operator=(
const
int
&i)
47
{
48
setTag(i);
49
return
*
this
;
50
}
51
inline
void
setTag(
const
int
&tag)
52
{
53
// Commented out because it gives "false positives" when
54
// restoring databases.
55
// if(tag<default_tag)
56
// std::cerr << "DefaultTag::" << __FUNCTION__
57
// << "; WARNING new tag: " << tag
58
// << " is smaller than the old one: " << default_tag
59
// << " This can led to repeated tags, which is not possible."
60
// << std::endl;
61
default_tag= tag;
62
}
63
inline
const
int
&getTag(
void
)
const
64
{
return
default_tag; }
65
inline
void
incTag(
void
)
66
{ default_tag++; }
67
inline
int
operator++(
int
)
68
{
69
int
retval= default_tag;
70
default_tag++;
71
return
retval;
72
}
73
inline
int
operator++(
void
)
74
{
return
++default_tag; }
75
};
76
77
78
}
// end of XC namespace
79
80
#endif
81
XC::DefaultTag
Default tag.
Definition:
DefaultTag.h:37
XC
Open source finite element program for structural analysis.
Definition:
ContinuaReprComponent.h:35
Generated by
1.8.13