casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | Friends | List of all members
casacore::Param Class Reference

A simple keyword/value pair with internal help Strings. More...

#include <Param.h>

Public Member Functions

 Param ()
 constructors and destructor default constructor More...
 
 Param (const String &key, const String &value, const String &help, const String &type, const String &range, const String &unit)
 normal constructor with optional value and help strings More...
 
 Param (const Param &)
 copy constructor More...
 
 ~Param ()
 destructor More...
 
Paramoperator= (const Param &)
 assignment operator More...
 
Bool operator== (const Param &) const
 Equality comparitor. More...
 
Double getDouble (Bool do_prompt=False) const
 get a double parameter value; prompt if switch is TRUE More...
 
Block< DoublegetDoubleArray (Bool do_prompt=False) const
 get a Block<double> parameter value; prompt if switch is TRUE More...
 
Int getInt (Bool do_prompt=False) const
 get an Int parameter value; prompt if switch is TRUE More...
 
Block< IntgetIntArray (Bool do_prompt=False) const
 get an Block<Int> parameter value; prompt if switch is TRUE More...
 
const StringgetString (Bool do_prompt=False) const
 get a String parameter value; prompt if switch is TRUE More...
 
Block< StringgetStringArray (Bool do_prompt=False) const
 get a Block<String> parameter value; prompt if switch is TRUE More...
 
Bool getBool (Bool do_prompt=False) const
 get a Boolean parameter value; prompt if switch is TRUE More...
 
const Stringget () const
 get parameter value as a string More...
 
const StringgetHelp () const
 get parameter help string More...
 
const StringgetKey () const
 get parameter name More...
 
String keyVal () const
 get the string `key = value' for the parameter More...
 
const StringgetType () const
 get the type of a parameter More...
 
const StringgetRange () const
 get the valid range of a parameter More...
 
const StringgetUnit () const
 get the units of a parameter More...
 
Bool put (const String &a_value)
 set new parameter value; return FALSE if invalid value More...
 
void setSystem (Bool val)
 set a parameter as a system parameter More...
 
Bool isSystem () const
 check if a parameter is a system parameter More...
 
void setIndex (Int inx)
 set an index for a program parameter More...
 
Int getIndex () const
 get the index of a parameter More...
 

Private Attributes

String key
 parameter name More...
 
String value
 parameter value More...
 
String help
 help string More...
 
String type
 type of parameter More...
 
String range
 range/validity/pre-check More...
 
String unit
 optional unit associated with value More...
 
Bool hasvalue
 boolean data member which indicates the Param's key has a value. More...
 
Bool system
 boolean data member which indicates the Param is system wide. More...
 
Int index
 index for program keywords (>=1) More...
 

Friends

ostream & operator<< (ostream &, const Param &p)
 I/O operators. More...
 
istream & operator>> (istream &, Param &p)
 
AipsIOoperator<< (AipsIO &, const Param &p)
 
AipsIOoperator>> (AipsIO &, Param &p)
 

Detailed Description

A simple keyword/value pair with internal help Strings.

Intended use:

Internal

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25
Test programs:
tParam

Prerequisite

Etymology

The Param class name is a shortening of "parameter" and is indicative of the class being designed as a keyword/value pair relating to command line arguments. The existing Keyword class does a much better job for most other purposes.

Synopsis

The Param is constructed with all arguments being Strings. This is a reflection of the C-type command line argument method of passing an integer (argc or argument count) and an array of pointers to characters (argv or argument vector.) If "char* argv[]" is broken into its individual arguments they may be used to fill a Param. The constructor pairs up a "key" to a value. A help String argument is provided to assist in prompted filling of Param values. The expected return type may be entered as well as a range of potential values. Finally, the units of the value are also specified. The intent is to provide a well documented value and a "key" by which to "call" it.

The "getWhatever" member functions of Param convert the internal Strings into the desired output data type. The Strings themselves may also be returned.

Example

// we will create a Param which contains the boundary for an iteration loop.
String key("IterBound");
// give "IterBound" a default value
String value("200");
// a help String for prompting
String help("The Boundary value for the chutzpah iterator.");
// The expected return type is an integer
String type("Int");
// The range of "legal" values
String range("10-10000");
// the units of the value
String unit("unitless"):
// Now we may build our Param
Param PleaseDontTouchMeThere(key, value, help, type, range, unit);
// to retrieve the value we use the GetInt function
for (Int i=0, i<PleaseDontTouchMeThere.getInt(); i++, chutzpah++);

Motivation

The Param class was an early attempt at keywords within Casacore. They have become obsolete but hang on due to their relationship with the Input class.

To Do

Definition at line 113 of file Param.h.

Constructor & Destructor Documentation

casacore::Param::Param ( )

constructors and destructor default constructor

casacore::Param::Param ( const String key,
const String value,
const String help,
const String type,
const String range,
const String unit 
)

normal constructor with optional value and help strings

casacore::Param::Param ( const Param )

copy constructor

casacore::Param::~Param ( )

destructor

Member Function Documentation

const String& casacore::Param::get ( ) const
inline

get parameter value as a string

Definition at line 168 of file Param.h.

References value.

Bool casacore::Param::getBool ( Bool  do_prompt = False) const

get a Boolean parameter value; prompt if switch is TRUE

Double casacore::Param::getDouble ( Bool  do_prompt = False) const

get a double parameter value; prompt if switch is TRUE

Block<Double> casacore::Param::getDoubleArray ( Bool  do_prompt = False) const

get a Block<double> parameter value; prompt if switch is TRUE

const String& casacore::Param::getHelp ( ) const
inline

get parameter help string

Definition at line 172 of file Param.h.

References help.

Int casacore::Param::getIndex ( ) const
inline

get the index of a parameter

Definition at line 211 of file Param.h.

References index.

Int casacore::Param::getInt ( Bool  do_prompt = False) const

get an Int parameter value; prompt if switch is TRUE

Block<Int> casacore::Param::getIntArray ( Bool  do_prompt = False) const

get an Block<Int> parameter value; prompt if switch is TRUE

const String& casacore::Param::getKey ( ) const
inline

get parameter name

Definition at line 176 of file Param.h.

References key.

const String& casacore::Param::getRange ( ) const
inline

get the valid range of a parameter

Definition at line 188 of file Param.h.

References range.

const String& casacore::Param::getString ( Bool  do_prompt = False) const

get a String parameter value; prompt if switch is TRUE

Block<String> casacore::Param::getStringArray ( Bool  do_prompt = False) const

get a Block<String> parameter value; prompt if switch is TRUE

const String& casacore::Param::getType ( ) const
inline

get the type of a parameter

Definition at line 184 of file Param.h.

References type.

const String& casacore::Param::getUnit ( ) const
inline

get the units of a parameter

Definition at line 192 of file Param.h.

References unit.

Bool casacore::Param::isSystem ( ) const
inline

check if a parameter is a system parameter

Definition at line 203 of file Param.h.

References system.

String casacore::Param::keyVal ( ) const
inline

get the string `key = value' for the parameter

Definition at line 180 of file Param.h.

References value.

Param& casacore::Param::operator= ( const Param )

assignment operator

Bool casacore::Param::operator== ( const Param ) const

Equality comparitor.


Warning: This function ALWAYS returns false; I have no idea why it was designed to do this;

Bool casacore::Param::put ( const String a_value)

set new parameter value; return FALSE if invalid value

void casacore::Param::setIndex ( Int  inx)
inline

set an index for a program parameter

Definition at line 207 of file Param.h.

References index.

void casacore::Param::setSystem ( Bool  val)
inline

set a parameter as a system parameter

Definition at line 199 of file Param.h.

References system.

Friends And Related Function Documentation

ostream& operator<< ( ostream &  ,
const Param p 
)
friend

I/O operators.

AipsIO& operator<< ( AipsIO ,
const Param p 
)
friend
istream& operator>> ( istream &  ,
Param p 
)
friend
AipsIO& operator>> ( AipsIO ,
Param p 
)
friend

Member Data Documentation

Bool casacore::Param::hasvalue
private

boolean data member which indicates the Param's key has a value.

Definition at line 235 of file Param.h.

String casacore::Param::help
private

help string

Definition at line 223 of file Param.h.

Referenced by getHelp().

Int casacore::Param::index
private

index for program keywords (>=1)

Definition at line 241 of file Param.h.

Referenced by getIndex(), and setIndex().

String casacore::Param::key
private

parameter name

Definition at line 217 of file Param.h.

Referenced by getKey().

String casacore::Param::range
private

range/validity/pre-check

Definition at line 229 of file Param.h.

Referenced by getRange().

Bool casacore::Param::system
private

boolean data member which indicates the Param is system wide.

Definition at line 238 of file Param.h.

Referenced by isSystem(), and setSystem().

String casacore::Param::type
private

type of parameter

Definition at line 226 of file Param.h.

Referenced by getType().

String casacore::Param::unit
private

optional unit associated with value

Definition at line 232 of file Param.h.

Referenced by getUnit().

String casacore::Param::value
private

parameter value

Definition at line 220 of file Param.h.

Referenced by get(), and keyVal().


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