Teuchos - Trilinos Tools Package
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
Teuchos_Describable.cpp
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
#include "Teuchos_Describable.hpp"
43
#include "
Teuchos_TypeNameTraits.hpp
"
44
45
46
namespace
Teuchos
{
47
48
49
const
EVerbosityLevel
Describable::verbLevel_default
=
VERB_DEFAULT
;
50
51
52
std::string
Describable::description
()
const
53
{
54
const
std::string objectLabel = this->
getObjectLabel
();
55
std::ostringstream oss;
56
if
(objectLabel.length ()) {
57
oss <<
"\""
<< objectLabel <<
"\": "
;
58
}
59
oss <<
typeName
(*
this
);
60
return
oss.str ();
61
}
62
63
void
64
Describable::describe
(
FancyOStream
& out_arg,
65
const
EVerbosityLevel
/* verbLevel */
)
const
66
{
67
RCP<FancyOStream>
out =
rcpFromRef
(out_arg);
68
OSTab
tab
(out);
69
*out << this->
description
() << std::endl;
70
}
71
72
void
73
Describable::describe
(std::ostream& out,
74
const
EVerbosityLevel
verbLevel)
const
75
{
76
RCP<FancyOStream>
fancyOut =
getFancyOStream
(
rcpFromRef
(out));
77
this->
describe
(*fancyOut, verbLevel);
78
}
79
80
Describable::~Describable
() {}
81
82
}
// namespace Teuchos
Teuchos_TypeNameTraits.hpp
Defines basic traits returning the name of a type in a portable and readable way.
Teuchos::Describable::verbLevel_default
static const EVerbosityLevel verbLevel_default
Default value for the verbLevel argument of describe().
Definition
Teuchos_Describable.hpp:79
Teuchos::Describable::describe
virtual void describe(FancyOStream &out, const EVerbosityLevel verbLevel=verbLevel_default) const
Print the object with some verbosity level to a FancyOStream.
Definition
Teuchos_Describable.cpp:64
Teuchos::Describable::~Describable
virtual ~Describable()
Destructor (marked virtual for memory safety of derived classes).
Definition
Teuchos_Describable.cpp:80
Teuchos::Describable::description
virtual std::string description() const
Return a simple one-line description of this object.
Definition
Teuchos_Describable.cpp:52
Teuchos::LabeledObject::getObjectLabel
virtual std::string getObjectLabel() const
Get the object label (see LabeledObject).
Definition
Teuchos_LabeledObject.cpp:63
Teuchos::RCP
Smart reference counting pointer class for automatic garbage collection.
Definition
Teuchos_RCPDecl.hpp:429
Teuchos::RCP::rcpFromRef
RCP< T > rcpFromRef(T &r)
Return a non-owning weak RCP object from a raw object reference for a defined type.
Teuchos::basic_FancyOStream::tab
RCP< basic_FancyOStream< CharT, Traits > > tab(const RCP< basic_FancyOStream< CharT, Traits > > &out, const int tabs=1, const std::basic_string< CharT, Traits > linePrefix="")
Create a tab for an RCP-wrapped basic_FancyOStream object to cause the indentation of all output auto...
Definition
Teuchos_FancyOStream.hpp:791
Teuchos::basic_FancyOStream::getFancyOStream
RCP< basic_FancyOStream< char > > getFancyOStream(const RCP< std::basic_ostream< char > > &out)
Get a FancyOStream from an std::ostream object.
Definition
Teuchos_FancyOStream.hpp:629
Teuchos::typeName
std::string typeName(const T &t)
Template function for returning the concrete type name of a passed-in object.
Definition
Teuchos_TypeNameTraits.hpp:115
Teuchos::FancyOStream
basic_FancyOStream< char > FancyOStream
Definition
Teuchos_FancyOStream.hpp:845
Teuchos::OSTab
basic_OSTab< char > OSTab
Definition
Teuchos_FancyOStream.hpp:851
Teuchos::EVerbosityLevel
EVerbosityLevel
Verbosity level.
Definition
Teuchos_VerbosityLevel.hpp:63
Teuchos::VERB_DEFAULT
@ VERB_DEFAULT
Generate output as defined by the object.
Definition
Teuchos_VerbosityLevel.hpp:64
Teuchos
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...
Generated by
1.17.0