Teuchos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
parameterlist
example
ParameterList
custom_validator_xml.cpp
Go to the documentation of this file.
1
/*
2
// @HEADER
3
// ***********************************************************************
4
//
5
// Teuchos: Common Tools Package
6
// Copyright (2004) Sandia Corporation
7
//
8
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
9
// license for use of this work by or on behalf of the U.S. Government.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
39
//
40
// ***********************************************************************
41
// @HEADER
42
*/
43
44
#include "
Teuchos_ParameterList.hpp
"
45
#include "
Teuchos_Array.hpp
"
46
#include "
Teuchos_Version.hpp
"
47
#include "
Teuchos_ParameterEntryXMLConverterDB.hpp
"
48
#include "
Teuchos_XMLParameterListCoreHelpers.hpp
"
49
#include "
Teuchos_StandardParameterEntryValidators.hpp
"
50
#include "
Teuchos_ValidatorXMLConverterDB.hpp
"
51
#include "
Teuchos_StandardValidatorXMLConverters.hpp
"
52
#include <iostream>
53
54
55
62
int
main
(
int
argc,
char
* argv[])
63
{
64
std::cout <<
Teuchos::Teuchos_Version
() << std::endl << std::endl;
65
66
Teuchos::ParameterList
My_List;
67
68
//Basic data types
69
Teuchos::RCP<Teuchos::StringToIntegralParameterEntryValidator<short>
>
70
solverValidator =
Teuchos::rcp
(
71
new
Teuchos::StringToIntegralParameterEntryValidator<short>
(
72
Teuchos::tuple<std::string>
(
"GMRES"
,
"CG"
,
"TFQMR"
)
73
,
"Solver"
74
)
75
);
76
My_List.
set
(
77
"Solver"
78
,
"GMRES"
79
,
"The type of solver to use."
80
,solverValidator
81
);
82
83
//By default, there is no validator converter for a StringToIntegralParameterEntryValidator
84
//templated on type short. So lets add one with the following convience macro found
85
//in ValidatorXMLConverterDB.hpp
86
TEUCHOS_ADD_STRINGTOINTEGRALVALIDATOR_CONVERTER
(
short
)
87
88
//Of course if you have a completly custom validator you'll need to do a little more
89
//You'll have to make you're own converter for it by subclassing the ValidatorXMLConverter
90
//class and then use the TEUCHOS_ADD_VALIDATOR_CONVERTER convience macro.
91
92
93
//Now we'll write it out to xml.
94
Teuchos::writeParameterListToXmlFile
(My_List,
"custom_validator_test_list.xml"
);
95
//Then read it in to a new list.
96
97
Teuchos::writeParameterListToXmlOStream
(My_List, std::cout);
98
Teuchos::RCP<Teuchos::ParameterList>
readIn =
Teuchos::getParametersFromXmlFile
(
"custom_validator_test_list.xml"
);
99
100
std::cout << *readIn;
101
108
return
0;
109
}
Teuchos_Array.hpp
Templated array class derived from the STL std::vector.
Teuchos_ParameterEntryXMLConverterDB.hpp
Teuchos_ParameterList.hpp
Templated Parameter List class.
Teuchos_StandardParameterEntryValidators.hpp
Teuchos_StandardValidatorXMLConverters.hpp
A collection of standard ValidatorXMLConverters.
Teuchos_ValidatorXMLConverterDB.hpp
A database for ValidatorXMLConverters.
TEUCHOS_ADD_STRINGTOINTEGRALVALIDATOR_CONVERTER
#define TEUCHOS_ADD_STRINGTOINTEGRALVALIDATOR_CONVERTER(INTEGRALTYPE)
Add StringToIntegralParameterEntryValidator<INTEGRAL_TYPE> to set of supported parameter types.
Definition
Teuchos_ValidatorXMLConverterDB.hpp:186
Teuchos_Version.hpp
Teuchos_XMLParameterListCoreHelpers.hpp
Simple helper functions that make it easy to read and write XML to and from a parameterlist.
Teuchos::ParameterList
A list of parameters of arbitrary type.
Definition
Teuchos_ParameterList.hpp:133
Teuchos::ParameterList::writeParameterListToXmlOStream
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT void writeParameterListToXmlOStream(const ParameterList ¶mList, std::ostream &xmlOut, RCP< const DependencySheet > depSheet=null)
Write parameters and sublists in XML format to an std::ostream.
Teuchos::ParameterList::set
ParameterList & set(std::string const &name, T const &value, std::string const &docString="", RCP< const ParameterEntryValidator > const &validator=null)
Set a parameter whose value has type T.
Definition
Teuchos_ParameterList.hpp:955
Teuchos::ParameterList::writeParameterListToXmlFile
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT void writeParameterListToXmlFile(const ParameterList ¶mList, const std::string &xmlFileName, RCP< const DependencySheet > depSheet=null)
Write parameters and sublist to an XML file.
Teuchos::ParameterList::getParametersFromXmlFile
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT RCP< ParameterList > getParametersFromXmlFile(const std::string &xmlFileName)
Reads XML parameters from a file and return them in a new parameter list.
Teuchos::RCP
Smart reference counting pointer class for automatic garbage collection.
Definition
Teuchos_RCPDecl.hpp:429
Teuchos::StringToIntegralParameterEntryValidator
Standard implementation of a ParameterEntryValidator that maps from a list of strings to an enum or i...
Definition
Teuchos_StandardParameterEntryValidators.hpp:92
Teuchos::Tuple::tuple
Tuple< T, 1 > tuple(const T &a)
Create a Tuple<T,1>.
main
int main()
Definition
evilMain.cpp:75
Teuchos::rcp
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.
Definition
Teuchos_RCPDecl.hpp:1266
Teuchos::Teuchos_Version
std::string Teuchos_Version()
Definition
Teuchos_Version.hpp:54
Generated by
1.17.0