PSCF v1.1
Public Member Functions | Protected Member Functions | List of all members
Util::ScalarParam< Type > Class Template Reference

Template for a Parameter object associated with a scalar variable. More...

#include <ScalarParam.h>

Inheritance diagram for Util::ScalarParam< Type >:
Util::Parameter Util::ParamComponent Util::Serializable Util::MpiFileIo

Public Member Functions

 ScalarParam (const char *label, Type &value, bool isRequired=true)
 Constructor. More...
 
void writeParam (std::ostream &out) const
 Write parameter to stream. More...
 
void setValue (Type &value)
 Set the pointer to point a specific variable. More...
 
- Public Member Functions inherited from Util::Parameter
 Parameter (const char *label, bool isRequired=true)
 Constructor. More...
 
virtual ~Parameter ()
 Destructor. More...
 
virtual void readParam (std::istream &in)
 Read a label and (if the label matches) a parameter value. More...
 
virtual void load (Serializable::IArchive &ar)
 Load from an archive. More...
 
virtual void save (Serializable::OArchive &ar)
 Save to an archive. More...
 
std::string label () const
 Return label string. More...
 
bool isRequired () const
 Is this an optional parameter? More...
 
bool isActive () const
 Is this parameter active? More...
 
- Public Member Functions inherited from Util::ParamComponent
virtual ~ParamComponent ()
 Destructor. More...
 
virtual void readParam (std::istream &in)=0
 Read parameter(s) from file. More...
 
virtual void writeParam (std::ostream &out) const =0
 Read parameter(s) to file. More...
 
virtual void load (Serializable::IArchive &ar)
 Load internal state from an archive. More...
 
virtual void save (Serializable::OArchive &ar)
 Save internal state to an archive. More...
 
virtual void resetParam ()
 Nontrivial implementation provided by ParamComposite subclass. More...
 
void setIndent (const ParamComponent &parent, bool next=true)
 Set indent level. More...
 
std::string indent () const
 Return indent string for this object (string of spaces). More...
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 Serialize this ParamComponent as a string. More...
 
- Public Member Functions inherited from Util::Serializable
virtual ~Serializable ()
 Destructor. More...
 
virtual void save (OArchive &ar)=0
 Save to an archive. More...
 
virtual void load (IArchive &ar)=0
 Load from an archive. More...
 
- Public Member Functions inherited from Util::MpiFileIo
 MpiFileIo ()
 Constructor. More...
 
 MpiFileIo (const MpiFileIo &other)
 Copy constructor. More...
 
bool isIoProcessor () const
 Can this processor do file I/O ? More...
 
void setIoCommunicator (MPI::Intracomm &communicator)
 Set the communicator. More...
 
void clearCommunicator ()
 Clear (nullify) the communicator. More...
 
bool hasIoCommunicator () const
 Does this object have an associated MPI communicator? More...
 
MPI::Intracomm & ioCommunicator () const
 Get the MPI communicator by reference. More...
 

Protected Member Functions

virtual void readValue (std::istream &in)
 Read parameter value from an input stream. More...
 
virtual void loadValue (Serializable::IArchive &ar)
 Load bare parameter value from an archive. More...
 
virtual void saveValue (Serializable::OArchive &ar)
 Save parameter value to an archive. More...
 
virtual void bcastValue ()
 Broadcast parameter value within the ioCommunicator. More...
 
- Protected Member Functions inherited from Util::Parameter
virtual void readLabel (std::istream &in)
 Read and attempt to match label string. More...
 
virtual void readValue (std::istream &in)
 Read parameter value from an input stream. More...
 
virtual void loadValue (Serializable::IArchive &ar)
 Load bare parameter value from an archive. More...
 
virtual void saveValue (Serializable::OArchive &ar)
 Save parameter value to an archive. More...
 
virtual void bcastValue ()
 Broadcast parameter value within the ioCommunicator. More...
 
- Protected Member Functions inherited from Util::ParamComponent
 ParamComponent ()
 Constructor. More...
 
 ParamComponent (const ParamComponent &other)
 Copy constructor. More...
 

Additional Inherited Members

- Public Types inherited from Util::Serializable
typedef BinaryFileOArchive OArchive
 Type of output archive used by save method. More...
 
typedef BinaryFileIArchive IArchive
 Type of input archive used by load method. More...
 
- Static Public Member Functions inherited from Util::Parameter
template<class Type >
static void saveOptional (Serializable::OArchive &ar, Type &value, bool isActive)
 Save an optional parameter value to an output archive. More...
 
template<class Type >
static void saveOptionalCArray (Serializable::OArchive &ar, Type *ptr, int n, bool isActive)
 Save an optional C-array of n values to an output archive. More...
 
template<class Type >
static void saveOptionalCArray2D (Serializable::OArchive &ar, Type *ptr, int m, int n, int np, bool isActive)
 Save an optional two-dimensional C array to an output archive. More...
 
- Static Public Member Functions inherited from Util::ParamComponent
static void initStatic ()
 Initialize static echo member to false. More...
 
static void setEcho (bool echo=true)
 Enable or disable echoing for all subclasses of ParamComponent. More...
 
static bool echo ()
 Get echo parameter. More...
 
- Static Public Attributes inherited from Util::Parameter
static const int Width = 20
 Width of output field for a scalar variable. More...
 
static const int Precision = 12
 Precision for io of floating point data field. More...
 
- Protected Attributes inherited from Util::Parameter
Label label_
 Label object that contains parameter label string. More...
 
bool isActive_
 Is this parameter active (always true if isRequired). More...
 

Detailed Description

template<class Type>
class Util::ScalarParam< Type >

Template for a Parameter object associated with a scalar variable.

This template can be used to define a Parameter subclass for any data type for which there exist inserter (<<) and extractor (>>) operators for stream io.

Definition at line 34 of file ScalarParam.h.

Constructor & Destructor Documentation

◆ ScalarParam()

template<class Type >
Util::ScalarParam< Type >::ScalarParam ( const char *  label,
Type &  value,
bool  isRequired = true 
)

Constructor.

Parameters
labellabel string const.
valuereference to parameter value.
isRequiredIs this a required parameter?

Definition at line 111 of file ScalarParam.h.

Member Function Documentation

◆ writeParam()

template<class Type >
void Util::ScalarParam< Type >::writeParam ( std::ostream &  out) const
virtual

Write parameter to stream.

Parameters
outoutput stream

Implements Util::ParamComponent.

Definition at line 139 of file ScalarParam.h.

References Util::Parameter::Precision, and Util::Parameter::Width.

◆ setValue()

template<class Type >
void Util::ScalarParam< Type >::setValue ( Type &  value)

Set the pointer to point a specific variable.

Parameters
valuevariable that holds the parameter value.

Definition at line 155 of file ScalarParam.h.

◆ readValue()

template<class Type >
void Util::ScalarParam< Type >::readValue ( std::istream &  in)
protectedvirtual

Read parameter value from an input stream.

Parameters
ininput stream from which to read

Reimplemented from Util::Parameter.

Definition at line 118 of file ScalarParam.h.

◆ loadValue()

template<class Type >
void Util::ScalarParam< Type >::loadValue ( Serializable::IArchive ar)
protectedvirtual

Load bare parameter value from an archive.

Parameters
arinput archive from which to load

Reimplemented from Util::Parameter.

Definition at line 122 of file ScalarParam.h.

◆ saveValue()

template<class Type >
void Util::ScalarParam< Type >::saveValue ( Serializable::OArchive ar)
protectedvirtual

Save parameter value to an archive.

Parameters
aroutput archive to which to save

Reimplemented from Util::Parameter.

Definition at line 126 of file ScalarParam.h.

◆ bcastValue()

template<class Type >
void Util::ScalarParam< Type >::bcastValue
protectedvirtual

Broadcast parameter value within the ioCommunicator.

Reimplemented from Util::Parameter.

Definition at line 131 of file ScalarParam.h.


The documentation for this class was generated from the following file: