Teuchos - Trilinos Tools Package
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
parameterlist
src
Teuchos_XMLObjectImplem.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Teuchos: Common Tools Package
5
// Copyright (2004) Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8
// license for use of this work by or on behalf of the U.S. Government.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
38
//
39
// ***********************************************************************
40
// @HEADER
41
42
#ifndef TEUCHOS_XMLOBJECTIMPLEM_H
43
#define TEUCHOS_XMLOBJECTIMPLEM_H
44
48
49
#include "
Teuchos_map.hpp
"
50
#include "
Teuchos_Array.hpp
"
51
#include "
Teuchos_RCP.hpp
"
52
53
namespace
Teuchos
54
{
55
56
class
XMLObject
;
57
62
class
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT
XMLObjectImplem
63
{
64
typedef
Teuchos::map<std::string, std::string> Map;
65
66
public
:
68
XMLObjectImplem
(
const
std::string& tag);
69
71
XMLObjectImplem
*
deepCopy
()
const
;
72
74
void
addAttribute
(
const
std::string& name,
const
std::string& value);
75
77
void
addChild
(
const
XMLObject
& child);
78
80
void
addContent
(
const
std::string& contentLine);
81
83
const
std::string&
getTag
()
const
{
return
tag_;}
84
86
bool
hasAttribute
(
const
std::string& name)
const
87
{
return
attributes_.find(name) != attributes_.end();}
88
90
const
std::string&
getAttribute
(
const
std::string& name)
const
91
{
return
(*(attributes_.find(name))).second;}
92
94
int
numChildren()
const
;
95
97
const
XMLObject
& getChild(
int
i)
const
;
98
100
int
numContentLines
()
const
{
return
content_.length();}
101
103
const
Map&
getAttributes
()
const
{
return
attributes_;}
104
106
const
std::string&
getContentLine
(
int
i)
const
{
return
content_[i];}
107
109
void
appendContentLine
(
const
size_t
& i,
const
std::string &str) {
110
content_[i].append(str);
111
}
112
114
void
removeContentLine(
const
size_t
& i);
115
117
void
print(std::ostream& os,
int
indent)
const
;
118
120
std::string toString()
const
;
121
123
std::string header(
bool
strictXML =
false
)
const
;
124
126
std::string terminatedHeader(
bool
strictXML =
false
)
const
;
127
129
std::string
footer
()
const
{
return
"</"
+
getTag
() +
">"
;}
130
131
private
:
132
134
void
printContent(std::ostream& os,
int
indent)
const
;
135
137
static
std::string XMLifyAttVal(
const
std::string &attval);
138
139
std::string tag_;
140
Map attributes_;
141
Array<XMLObject>
children_;
142
Array<std::string>
content_;
143
144
};
145
146
}
147
148
#endif
149
Teuchos_Array.hpp
Templated array class derived from the STL std::vector.
Teuchos_RCP.hpp
Reference-counted pointer class and non-member templated function implementations.
Teuchos_map.hpp
Provides std::map class for deficient platforms.
Teuchos::Array
Replacement for std::vector that is compatible with the Teuchos Memory Management classes.
Definition
Teuchos_Array.hpp:195
Teuchos::XMLObjectImplem::getAttribute
const std::string & getAttribute(const std::string &name) const
Look up an attribute by name.
Definition
Teuchos_XMLObjectImplem.hpp:90
Teuchos::XMLObjectImplem::deepCopy
XMLObjectImplem * deepCopy() const
Deep copy.
Definition
Teuchos_XMLObjectImplem.cpp:53
Teuchos::XMLObjectImplem::getTag
const std::string & getTag() const
Return the tag std::string.
Definition
Teuchos_XMLObjectImplem.hpp:83
Teuchos::XMLObjectImplem::getAttributes
const Map & getAttributes() const
Get all attributes.
Definition
Teuchos_XMLObjectImplem.hpp:103
Teuchos::XMLObjectImplem::addAttribute
void addAttribute(const std::string &name, const std::string &value)
Add a [name, value] attribute.
Definition
Teuchos_XMLObjectImplem.cpp:73
Teuchos::XMLObjectImplem::numContentLines
int numContentLines() const
Get the number of content lines.
Definition
Teuchos_XMLObjectImplem.hpp:100
Teuchos::XMLObjectImplem::hasAttribute
bool hasAttribute(const std::string &name) const
Determine whether an attribute exists.
Definition
Teuchos_XMLObjectImplem.hpp:86
Teuchos::XMLObjectImplem::getContentLine
const std::string & getContentLine(int i) const
Look up a content line by index.
Definition
Teuchos_XMLObjectImplem.hpp:106
Teuchos::XMLObjectImplem::addContent
void addContent(const std::string &contentLine)
Add a content line.
Definition
Teuchos_XMLObjectImplem.cpp:84
Teuchos::XMLObjectImplem::XMLObjectImplem
XMLObjectImplem(const std::string &tag)
Construct with a 'tag'.
Definition
Teuchos_XMLObjectImplem.cpp:49
Teuchos::XMLObjectImplem::appendContentLine
void appendContentLine(const size_t &i, const std::string &str)
Add string at the the end of a content line.
Definition
Teuchos_XMLObjectImplem.hpp:109
Teuchos::XMLObjectImplem::addChild
void addChild(const XMLObject &child)
Add a child XMLObject.
Definition
Teuchos_XMLObjectImplem.cpp:79
Teuchos::XMLObjectImplem::footer
std::string footer() const
Write the footer.
Definition
Teuchos_XMLObjectImplem.hpp:129
Teuchos::XMLObject
Representation of an XML data tree. XMLObject is a ref-counted handle to a XMLObjectImplem object,...
Definition
Teuchos_XMLObject.hpp:62
Teuchos
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...
Generated by
1.17.0