Teuchos - Trilinos Tools Package Version of the Day
Loading...
Searching...
No Matches
Teuchos_StandardDependencyXMLConverters.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Teuchos: Common Tools Package
4//
5// Copyright 2004 NTESS and the Teuchos contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef TEUCHOS_STANDARDDEPENDENCYXMLCONVERTERS_HPP
11#define TEUCHOS_STANDARDDEPENDENCYXMLCONVERTERS_HPP
12
16
17
22
23
24namespace Teuchos {
25
26
29class TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT VisualDependencyXMLConverter : public DependencyXMLConverter{
30
31public:
32
35
48 XMLObject& xmlObj,
49 const XMLParameterListWriter::EntryIDsMap& entryIDsMap) const = 0;
50
63 const XMLObject& xmlObj,
65 const Dependency::ParameterEntryList dependets,
66 bool showIf,
67 const XMLParameterListReader::EntryIDsMap& entryIDsMap) const = 0;
68
70
73
76 const XMLObject& xmlObj,
78 const Dependency::ParameterEntryList dependets,
79 const XMLParameterListReader::EntryIDsMap& entryIDsMap,
80 const IDtoValidatorMap& validatorIDsMap) const;
81
84 const RCP<const Dependency> dependency,
85 XMLObject& xmlObj,
86 const XMLParameterListWriter::EntryIDsMap& entryIDsMap,
87 ValidatortoIDMap& validatorIDsMap) const;
88
90
91private:
92
95
97 static const std::string& getShowIfAttributeName(){
98 static const std::string showIfAttributeName = "showIf";
99 return showIfAttributeName;
100 }
101
103
104};
105
108class TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT ValidatorDependencyXMLConverter : public DependencyXMLConverter{
109
110public:
111
114
127 XMLObject& xmlObj,
128 ValidatortoIDMap& validatorIDsMap) const = 0;
129
141 const XMLObject& xmlObj,
143 const Dependency::ParameterEntryList dependents,
144 const IDtoValidatorMap& validatorIDsMap) const = 0;
145
147
150
153 const XMLObject& xmlObj,
155 const Dependency::ParameterEntryList dependets,
156 const XMLParameterListReader::EntryIDsMap& entryIDsMap,
157 const IDtoValidatorMap& validatorIDsMap) const;
158
161 const RCP<const Dependency> dependency,
162 XMLObject& xmlObj,
163 const XMLParameterListWriter::EntryIDsMap& entryIDsMap,
164 ValidatortoIDMap& validatorIDsMap) const;
165
167
168};
169
188class TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT StringVisualDependencyXMLConverter : public VisualDependencyXMLConverter{
189
190public:
191
194
198 XMLObject& xmlObj,
199 const XMLParameterListWriter::EntryIDsMap& entryIDsMap) const;
200
203 const XMLObject& xmlObj,
205 const Dependency::ParameterEntryList dependets,
206 bool showIf,
207 const XMLParameterListReader::EntryIDsMap& entryIDsMap) const;
208
210 static const std::string& getStringValuesTagName(){
211 static const std::string stringValuesTagName = "StringValues";
212 return stringValuesTagName;
213 }
214
216
217private:
218
221
223 static const std::string& getStringTagName(){
224 static const std::string stringTagName = "String";
225 return stringTagName;
226 }
227
229 static const std::string& getValueAttributeName(){
230 static const std::string valueAttributeName = "value";
231 return valueAttributeName;
232 }
233
235
236};
237
251class TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT BoolVisualDependencyXMLConverter : public VisualDependencyXMLConverter{
252
253public:
254
257
261 XMLObject& xmlObj,
262 const XMLParameterListWriter::EntryIDsMap& entryIDsMap) const;
263
266 const XMLObject& xmlObj,
268 const Dependency::ParameterEntryList dependets,
269 bool showIf,
270 const XMLParameterListReader::EntryIDsMap& entryIDsMap) const;
271
273
274};
275
292template<class T>
294
295public:
296
299
303 XMLObject& xmlObj,
304 const XMLParameterListWriter::EntryIDsMap& entryIDsMap) const;
305
308 const XMLObject& xmlObj,
310 const Dependency::ParameterEntryList dependets,
311 bool showIf,
312 const XMLParameterListReader::EntryIDsMap& entryIDsMap) const;
313
315
316};
317
318template<class T>
321 XMLObject& xmlObj,
322 const XMLParameterListWriter::EntryIDsMap& /* entryIDsMap */) const
323{
324 RCP<const NumberVisualDependency<T> > castedDependency =
326 RCP<const SimpleFunctionObject<T> > functionObject =
327 castedDependency->getFunctionObject();
328
329 if(functionObject != null){
330 XMLObject functionXML =
332 xmlObj.addChild(functionXML);
333 }
334
335}
336
337template<class T>
340 const XMLObject& xmlObj,
342 const Dependency::ParameterEntryList dependents,
343 bool showIf,
344 const XMLParameterListReader::EntryIDsMap& /* entryIDsMap */) const
345{
346 TEUCHOS_TEST_FOR_EXCEPTION(dependees.size() > 1,
348 "A NumberVisualDependency can only have 1 dependee!" <<
349 std::endl << std::endl);
350 int functionIndex = xmlObj.findFirstChild(FunctionObject::getXMLTagName());
351 RCP<SimpleFunctionObject<T> > functionObject = null;
352 if(functionIndex != -1){
355 }
357 *(dependees.begin()), dependents, showIf, functionObject));
358
359}
360
377class TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT ConditionVisualDependencyXMLConverter :
379{
380
381public:
382
385
389 XMLObject& xmlObj,
390 const XMLParameterListWriter::EntryIDsMap& entryIDsMap) const;
391
394 const XMLObject& xmlObj,
396 const Dependency::ParameterEntryList dependets,
397 bool showIf,
398 const XMLParameterListReader::EntryIDsMap& entryIDsMap) const;
399
401
402};
403
404
424class TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT StringValidatorDependencyXMLConverter :
426
427public:
428
431
435 XMLObject& xmlObj,
436 ValidatortoIDMap& validatorIDsMap) const;
437
440 const XMLObject& xmlObj,
442 const Dependency::ParameterEntryList dependents,
443 const IDtoValidatorMap& validatorIDsMap) const;
444
446 static const std::string& getValuesAndValidatorsTag(){
447 static const std::string valuesAndValidatorsTag = "ValuesAndValidators";
448 return valuesAndValidatorsTag;
449 }
450
452
453private:
456
458 static const std::string& getPairTag(){
459 static const std::string pairTag = "Pair";
460 return pairTag;
461 }
462
464 static const std::string& getValueAttributeName(){
465 static const std::string valueAttributeName = "value";
466 return valueAttributeName;
467 }
468
470 static const std::string& getValidatorIdAttributeName(){
471 static const std::string validatorIDAttributeName = "validatorId";
472 return validatorIDAttributeName;
473 }
474
476 static const std::string& getDefaultValidatorIdAttributeName(){
477 static const std::string defaultValidatorIdAttributeName =
478 "defaultValidatorId";
479 return defaultValidatorIdAttributeName;
480 }
481
483
484};
485
502class TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT BoolValidatorDependencyXMLConverter : public ValidatorDependencyXMLConverter{
503
504public:
505
508
512 XMLObject& xmlObj,
513 ValidatortoIDMap& validatorIDsMap) const;
514
517 const XMLObject& xmlObj,
519 const Dependency::ParameterEntryList dependents,
520 const IDtoValidatorMap& validatorIDsMap) const;
521
523
524private:
525
528
530 static const std::string& getFalseValidatorIdAttributeName(){
531 static const std::string falseValidatorIdAttributeName =
532 "falseValidatorId";
533 return falseValidatorIdAttributeName;
534 }
535
537 static const std::string& getTrueValidatorIdAttributeName(){
538 static const std::string trueValidatorIdAttributeName =
539 "trueValidatorId";
540 return trueValidatorIdAttributeName;
541 }
542
544
545};
546
569template<class T>
572
573public:
574
577
581 XMLObject& xmlObj,
582 ValidatortoIDMap& validatorIDsMap) const;
583
586 const XMLObject& xmlObj,
588 const Dependency::ParameterEntryList dependents,
589 const IDtoValidatorMap& validatorIDsMap) const;
590
592 static const std::string& getRangesAndValidatorsTag(){
593 static const std::string rangesAndValidatorsTag = "RangesAndValidators";
594 return rangesAndValidatorsTag;
595 }
596
598
599private:
602
603
605 static const std::string& getPairTag(){
606 static const std::string pairTag = "Pair";
607 return pairTag;
608 }
609
611 static const std::string& getMinAttributeName(){
612 static const std::string minAttributeName = "min";
613 return minAttributeName;
614 }
615
617 static const std::string& getMaxAttributeName(){
618 static const std::string maxAttributeName = "max";
619 return maxAttributeName;
620 }
621
622
624 static const std::string& getValidatorIdAttributeName(){
625 static const std::string validatorIdAttributeName = "validatorId";
626 return validatorIdAttributeName;
627 }
628
630 static const std::string& getDefaultValidatorIdAttributeName(){
631 static const std::string defaultValidatorIdAttributeName =
632 "defaultValidatorId";
633 return defaultValidatorIdAttributeName;
634 }
635
637
638};
639
640template<class T>
641void
644 XMLObject& xmlObj,
645 ValidatortoIDMap& validatorIDsMap) const
646{
647 RCP<const RangeValidatorDependency<T> > castedDependency =
649
650 XMLObject rangesAndValidatorsTag(getRangesAndValidatorsTag());
651
652 castedDependency->getRangeToValidatorMap();
653 for(
655 it = castedDependency->getRangeToValidatorMap().begin();
656 it != castedDependency->getRangeToValidatorMap().end();
657 ++it)
658 {
659 T min = it->first.first;
660 T max = it->first.second;
661 if(validatorIDsMap.find(it->second) == validatorIDsMap.end()){
662 validatorIDsMap.insert(it->second);
663 }
665 validatorIDsMap.find(it->second)->second;
666 XMLObject pairTag(getPairTag());
667 pairTag.addAttribute(getMinAttributeName(), min);
668 pairTag.addAttribute(getMaxAttributeName(), max);
669 pairTag.addAttribute(getValidatorIdAttributeName(), validatorID);
670 rangesAndValidatorsTag.addChild(pairTag);
671 }
672 xmlObj.addChild(rangesAndValidatorsTag);
673 RCP<const ParameterEntryValidator> defaultValidator =
674 castedDependency->getDefaultValidator();
675 if(nonnull(defaultValidator)){
676 if(validatorIDsMap.find(defaultValidator) == validatorIDsMap.end()){
677 validatorIDsMap.insert(defaultValidator);
678 }
679 xmlObj.addAttribute(
680 getDefaultValidatorIdAttributeName(),
681 validatorIDsMap.find(defaultValidator)->second);
682 }
683}
684
685template<class T>
688 const XMLObject& xmlObj,
690 const Dependency::ParameterEntryList dependents,
691 const IDtoValidatorMap& validatorIDsMap) const
692{
693
694 int result = xmlObj.findFirstChild(getRangesAndValidatorsTag());
695 TEUCHOS_TEST_FOR_EXCEPTION(result == -1,
697 "Error: All RangeValidatorDependencies must have a " <<
698 getRangesAndValidatorsTag() << " tag!" << std::endl << std::endl);
699
700 XMLObject rangesAndValidatorsTag = xmlObj.getChild(result);
701
703 rangesAndValidators;
704 for(int i = 0 ; i < rangesAndValidatorsTag.numChildren(); ++i){
705 XMLObject child = rangesAndValidatorsTag.getChild(i);
706 T min = child.getRequired<T>(getMinAttributeName());
707 T max = child.getRequired<T>(getMaxAttributeName());
710 getValidatorIdAttributeName());
711
713 validatorIDsMap.find(currentID) == validatorIDsMap.end(),
715 "Could not find validator in given ValidatorIDsMap! " << std::endl <<
716 std::endl);
718 validatorIDsMap.find(currentID)->second;
719
720 rangesAndValidators.insert(
722 typename RangeValidatorDependency<T>::Range(min, max), validator));
723 }
724
725 RCP<ParameterEntryValidator> defaultValidator = null;
726 if(xmlObj.hasAttribute(getDefaultValidatorIdAttributeName())){
729 getDefaultValidatorIdAttributeName());
731 validatorIDsMap.find(defaultValiID) == validatorIDsMap.end(),
733 "Could not find a validator (for the default validator) " <<
734 "corresponding to the ID " << defaultValiID <<
735 " in the given validatorIDsMap!" << std::endl << std::endl);
736 defaultValidator = validatorIDsMap.find(defaultValiID)->second;
737 }
738
740 dependee, dependents, rangesAndValidators, defaultValidator));
741}
742
747template<class DependeeType, class DependentType>
749
750public:
751
754
757 const XMLObject& xmlObj,
759 const Dependency::ParameterEntryList dependets,
760 const XMLParameterListReader::EntryIDsMap& entryIDsMap,
761 const IDtoValidatorMap& validatorIDsMap) const;
762
765 const RCP<const Dependency> dependency,
766 XMLObject& xmlObj,
767 const XMLParameterListWriter::EntryIDsMap& entryIDsMap,
768 ValidatortoIDMap& validatorIDsMap) const;
769
771
772protected:
773
795 RCP<const SimpleFunctionObject<DependeeType> > function) const = 0;
796
797};
798
799template<class DependeeType, class DependentType>
802 const XMLObject& xmlObj,
804 const Dependency::ParameterEntryList dependents,
805 const XMLParameterListReader::EntryIDsMap& /* entryIDsMap */,
806 const IDtoValidatorMap& /* validatorIDsMap */) const
807{
808 TEUCHOS_TEST_FOR_EXCEPTION(dependees.size() > 1,
810 "A ArrayModifierDependency can only have 1 dependee!" <<
811 std::endl << std::endl);
812 RCP<SimpleFunctionObject<DependeeType> > functionObject = null;
813 int functionIndex = xmlObj.findFirstChild(FunctionObject::getXMLTagName());
814 if(functionIndex != -1){
817 }
818 return
819 getConcreteDependency(*(dependees.begin()), dependents, functionObject);
820}
821
822template<class DependeeType, class DependentType>
823void
825 const RCP<const Dependency> dependency,
826 XMLObject& xmlObj,
827 const XMLParameterListWriter::EntryIDsMap& /* entryIDsMap */,
828 ValidatortoIDMap& /* validatorIDsMap */) const
829{
832 dependency);
834 castedDep->getFunctionObject();
835 if(functionObject != null){
837 functionObject);
838 xmlObj.addChild(functionXML);
839 }
840}
841
842
857template<class DependeeType, class DependentType>
859 public ArrayModifierDependencyXMLConverter<DependeeType, DependentType>{
860
861protected:
862
869 RCP<const SimpleFunctionObject<DependeeType> > function) const;
871
872};
873
874template<class DependeeType, class DependentType>
885
886
903template<class DependeeType, class DependentType>
905 public ArrayModifierDependencyXMLConverter<DependeeType, DependentType>
906{
907
908protected:
909
916 RCP<const SimpleFunctionObject<DependeeType> > function) const;
918
919};
920
921template<class DependeeType, class DependentType>
932
949template<class DependeeType, class DependentType>
951 public ArrayModifierDependencyXMLConverter<DependeeType, DependentType>
952{
953
954protected:
955
962 RCP<const SimpleFunctionObject<DependeeType> > function) const;
964
965};
966
967template<class DependeeType, class DependentType>
978
979
980
981} // namespace Teuchos
982
983
984#endif // TEUCHOS_STANDARDDEPENDENCYXMLCONVERTERS_HPP
Converts back and forth between XML and Dependencies.
A database for FunctionObjectXMLConverters.
A collection of standard dependencies.
A collection of Exceptions thrown when converting Dependencys to and from XML.
A converter used to convert ArrayModifierDepdencies to and from xml.
void convertDependency(const RCP< const Dependency > dependency, XMLObject &xmlObj, const XMLParameterListWriter::EntryIDsMap &entryIDsMap, ValidatortoIDMap &validatorIDsMap) const
RCP< Dependency > convertXML(const XMLObject &xmlObj, const Dependency::ConstParameterEntryList dependees, const Dependency::ParameterEntryList dependets, const XMLParameterListReader::EntryIDsMap &entryIDsMap, const IDtoValidatorMap &validatorIDsMap) const
virtual RCP< ArrayModifierDependency< DependeeType, DependentType > > getConcreteDependency(RCP< const ParameterEntry > dependee, Dependency::ParameterEntryList dependents, RCP< const SimpleFunctionObject< DependeeType > > function) const =0
Obtains a concrete ArrayModifierDependency given a dependee, dependtns, and a funciton object.
void convertSpecialValidatorAttributes(RCP< const ValidatorDependency > dependency, XMLObject &xmlObj, ValidatortoIDMap &validatorIDsMap) const
void convertSpecialVisualAttributes(RCP< const VisualDependency > dependency, XMLObject &xmlObj, const XMLParameterListWriter::EntryIDsMap &entryIDsMap) const
void convertSpecialVisualAttributes(RCP< const VisualDependency > dependency, XMLObject &xmlObj, const XMLParameterListWriter::EntryIDsMap &entryIDsMap) const
An abstract base class for converting Dependencies to and from XML.
std::set< RCP< ParameterEntry >, RCPComp > ParameterEntryList
A list of Dependees.
std::set< RCP< const ParameterEntry >, RCPConstComp > ConstParameterEntryList
A list of dependents.
static XMLObject convertFunctionObject(RCP< const FunctionObject > function)
Given a FunctionObject, converts the FunctionObject to XML.
static RCP< FunctionObject > convertXML(const XMLObject &xmlObject)
Given an XMLObject, converts the XMLObject to a FunctionObject.
static const std::string & getXMLTagName()
Returns the name of the XML tag used to indicate a funciton object.
Maps Validators to integers.
const_iterator end() const
Returns a const_reference to the end of the map.
const_iterator find(int id) const
Retrieves and iterator to a validator and id based on the id given.
Thrown when the rangesAndValidators tag for the RangeValidatorDepencyConverter can't be found.
Thrown when converting a dependency that has validaotrs to and from XML. This excetpion indicates tha...
virtual RCP< ArrayModifierDependency< DependeeType, DependentType > > getConcreteDependency(RCP< const ParameterEntry > dependee, Dependency::ParameterEntryList dependents, RCP< const SimpleFunctionObject< DependeeType > > function) const
Obtains a concrete ArrayModifierDependency given a dependee, dependtns, and a funciton object.
A NumberArrayLengthDependency says the following about the relationship between two parameters: The l...
void convertSpecialVisualAttributes(RCP< const VisualDependency > dependency, XMLObject &xmlObj, const XMLParameterListWriter::EntryIDsMap &entryIDsMap) const
A number visual dependency says the following about the relationship between two elements in a Parame...
Smart reference counting pointer class for automatic garbage collection.
RCP< T2 > rcp_dynamic_cast(const RCP< T1 > &p1, bool throw_on_fail=false)
Dynamic cast of underlying RCP type from T1* to T2*.
void convertSpecialValidatorAttributes(RCP< const ValidatorDependency > dependency, XMLObject &xmlObj, ValidatortoIDMap &validatorIDsMap) const
A RangeValidatorDependency says the following about the relationship between two parameters: Dependen...
std::pair< Range, RCP< const ParameterEntryValidator > > RangeValidatorPair
Convenience typedef.
std::map< Range, RCP< const ParameterEntryValidator > > RangeToValidatorMap
Convenience typedef.
std::pair< T, T > Range
Convenience typedef.
A simple function object that applies a given operand to a spcified arguement using a specific operat...
void convertSpecialValidatorAttributes(RCP< const ValidatorDependency > dependency, XMLObject &xmlObj, ValidatortoIDMap &validatorIDsMap) const
static const std::string & getStringValuesTagName()
Gets the StringValues Tag.
void convertSpecialVisualAttributes(RCP< const VisualDependency > dependency, XMLObject &xmlObj, const XMLParameterListWriter::EntryIDsMap &entryIDsMap) const
Thrown when a Dependency has too many dependees specified in its XML.
A class for converting TwoDColDependencies to and from XML.
virtual RCP< ArrayModifierDependency< DependeeType, DependentType > > getConcreteDependency(RCP< const ParameterEntry > dependee, Dependency::ParameterEntryList dependents, RCP< const SimpleFunctionObject< DependeeType > > function) const
Obtains a concrete ArrayModifierDependency given a dependee, dependtns, and a funciton object.
A dependency in which the number of rows in a parameter with a TwoDArray depends on the value of anot...
A class for converting TwoDRowDependencies to and from XML.
virtual RCP< ArrayModifierDependency< DependeeType, DependentType > > getConcreteDependency(RCP< const ParameterEntry > dependee, Dependency::ParameterEntryList dependents, RCP< const SimpleFunctionObject< DependeeType > > function) const
Obtains a concrete ArrayModifierDependency given a dependee, dependtns, and a funciton object.
A dependency in which the number of rows in a parameter with a TwoDArray depends on the value of anot...
virtual RCP< ValidatorDependency > convertSpecialValidatorAttributes(const XMLObject &xmlObj, RCP< const ParameterEntry > dependee, const Dependency::ParameterEntryList dependents, const IDtoValidatorMap &validatorIDsMap) const =0
Converts any special aspects of a specific validator dependency from xml.
void convertDependency(const RCP< const Dependency > dependency, XMLObject &xmlObj, const XMLParameterListWriter::EntryIDsMap &entryIDsMap, ValidatortoIDMap &validatorIDsMap) const
RCP< Dependency > convertXML(const XMLObject &xmlObj, const Dependency::ConstParameterEntryList dependees, const Dependency::ParameterEntryList dependets, const XMLParameterListReader::EntryIDsMap &entryIDsMap, const IDtoValidatorMap &validatorIDsMap) const
virtual void convertSpecialValidatorAttributes(RCP< const ValidatorDependency > dependency, XMLObject &xmlObj, ValidatortoIDMap &validatorIDsMap) const =0
Converts any special aspects of a specific validator dependency to xml.
A class for mapping validators to integers.
const_iterator end() const
Returns a const_reference to the end of the map.
void insert(RCP< const ParameterEntryValidator > toInsert)
inserts an IDValidatorPair into the map.
const_iterator find(const RCP< const ParameterEntryValidator > validator) const
Returns an iterator to the validator and id specified by the validator.
void convertDependency(const RCP< const Dependency > dependency, XMLObject &xmlObj, const XMLParameterListWriter::EntryIDsMap &entryIDsMap, ValidatortoIDMap &validatorIDsMap) const
RCP< Dependency > convertXML(const XMLObject &xmlObj, const Dependency::ConstParameterEntryList dependees, const Dependency::ParameterEntryList dependets, const XMLParameterListReader::EntryIDsMap &entryIDsMap, const IDtoValidatorMap &validatorIDsMap) const
virtual void convertSpecialVisualAttributes(RCP< const VisualDependency > dependency, XMLObject &xmlObj, const XMLParameterListWriter::EntryIDsMap &entryIDsMap) const =0
Converts any special aspects of a specific visual dependency to xml.
virtual RCP< VisualDependency > convertSpecialVisualAttributes(const XMLObject &xmlObj, const Dependency::ConstParameterEntryList dependees, const Dependency::ParameterEntryList dependets, bool showIf, const XMLParameterListReader::EntryIDsMap &entryIDsMap) const =0
Converts any special aspects of a specific visual dependency from xml.
Representation of an XML data tree. XMLObject is a ref-counted handle to a XMLObjectImplem object,...
void addChild(const XMLObject &child)
Add a child node to the node.
const std::string & getRequired(const std::string &name) const
Get an attribute, throwing an std::exception if it is not found.
void addAttribute(const std::string &name, T value)
Lookup whether or not Doubles are allowed.
const XMLObject & getChild(int i) const
Return the i-th child node.
bool hasAttribute(const std::string &name) const
Find out if the current node has an attribute of the specified name.
int findFirstChild(std::string tagName) const
Returns the index of the first child found with the given tag name. Returns -1 if no child is found.
int numChildren() const
Return the number of child nodes owned by this node.
std::map< ParameterEntry::ParameterEntryID, RCP< ParameterEntry > > EntryIDsMap
Convenience typedef.
std::map< RCP< const ParameterEntry >, ParameterEntry::ParameterEntryID, RCPConstComp > EntryIDsMap
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
Macro for throwing an exception with breakpointing to ease debugging.
bool nonnull(const std::shared_ptr< T > &p)
Returns true if p.get()!=NULL.
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.