|
static Bool | find (T &value, const String &keyword) |
| The find() functions will, given a keyword, return the value of a matched keyword found in the files. More...
|
|
static Bool | find (T &value, const String &keyword, const T &deflt) |
|
static Bool | find (T &value, const String &keyword, const Unit &defun, const Unit &resun) |
| These find() functions will, given a keyword, read the value of a matched keyword as a Quantity. More...
|
|
static Bool | find (T &value, const String &keyword, const Unit &defun, const Unit &resun, const T &deflt) |
|
static uInt | registerRC (const String &keyword, const T &deflt) |
| Functions to register keywords for later use in get() and set(). More...
|
|
static uInt | registerRC (const String &keyword, const Unit &defun, const Unit &resun, const T &deflt) |
|
static const T & | get (uInt keyword) |
| Gets are like find, but using registered integers rather than names. More...
|
|
static void | set (uInt keyword, const T &deflt) |
| Sets allow registered values to be set. More...
|
|
static void | save (uInt keyword) |
| Save registered value to $HOME/.aipsrc More...
|
|
static Bool | find (String &value, const String &keyword) |
|
static Bool | findNoHome (String &value, const String &keyword) |
|
static Bool | find (uInt &value, const String &keyword, Int Nname, const String tname[]) |
| These finds check a (possible) value of the keyword against a list of coded values provided, and return an index into the list (N if not found). More...
|
|
static Bool | find (uInt &value, const String &keyword, const Vector< String > &tname) |
|
static Bool | find (String &value, const String &keyword, const String &deflt) |
| This find usually saves you some lines of code, since you can supply the default you want to use when no such keyword is defined. More...
|
|
static Bool | findNoHome (String &value, const String &keyword, const String &deflt) |
|
static Bool | find (uInt &value, const String &keyword, Int Nname, const String tname[], const String &deflt) |
|
static Bool | find (uInt &value, const String &keyword, const Vector< String > &tname, const String &deflt) |
|
static Bool | findDir (String &foundDir, const String &lastPart="", const Vector< String > &prepends=Vector< String >(), const Vector< String > &appends=Vector< String >(), Bool useStds=True) |
| Sets foundDir to the first /firstPart/lastPart path that it finds present on the system, where /firstPart comes from, in order, this list: contents of prepends. More...
|
|
static uInt | registerRC (const String &keyword, const String &deflt) |
| Functions to register keywords for later use in get() and set(). More...
|
|
static uInt | registerRC (const String &keyword, Int Nname, const String tname[], const String &deflt) |
|
static uInt | registerRC (const String &keyword, const Vector< String > &tname, const String &deflt) |
|
static const String & | get (uInt keyword) |
| Gets are like find, but using registered integers rather than names. More...
|
|
static const uInt & | get (uInt &code, uInt keyword) |
| get for code More...
|
|
static void | set (uInt keyword, const String &deflt) |
| Sets allow registered values to be set. More...
|
|
static void | set (uInt keyword, Int Nname, const String tname[], const String &deflt) |
|
static void | set (uInt keyword, const Vector< String > &tname, const String &deflt) |
|
static void | save (uInt keyword) |
| Save a registered keyword value to $HOME/.aipsrc More...
|
|
static void | save (uInt keyword, const String tname[]) |
|
static void | save (uInt keyword, const Vector< String > &tname) |
|
static void | setAipsPath (const String &path=String()) |
| Set an AIPSPATH that should be used in stead of a global AIPSPATH. More...
|
|
static const String & | aipsRoot () |
| Returns the appropriate Casacore or system variable values. More...
|
|
static const String & | aipsArch () |
|
static const String & | aipsSite () |
|
static const String & | aipsHost () |
|
static const String & | aipsHome () |
| Returns: ~/aips++ More...
|
|
static void | reRead () |
| The reRead() function will reinitialise the static maps and read the aipsrc files again. More...
|
|
static Double | lastRead () |
|
static const Block< String > & | values () |
| The following functions return the full lists of available data. More...
|
|
static const Block< String > & | patterns () |
|
static void | show (ostream &oStream) |
| The following show() function, useful for debugging, outputs all keyword/value pairs found. More...
|
|
static void | show () |
| Prints all info on cout. More...
|
|
static uInt | genRestore (Vector< String > &namlst, Vector< String > &vallst, const String &fileList) |
| The following set is a general set of functions. More...
|
|
static void | genSave (Vector< String > &namlst, Vector< String > &vallst, const String &fnam) |
| Save the names/values in file. More...
|
|
static void | genSet (Vector< String > &namlst, Vector< String > &vallst, const String &nam, const String &val) |
| Set (new or overwrite) keyword/value pair. More...
|
|
static Bool | genUnSet (Vector< String > &namlst, Vector< String > &vallst, const String &nam) |
| Remove a keyword from list (False if not in list) More...
|
|
static Bool | genGet (String &val, Vector< String > &namlst, Vector< String > &vallst, const String &nam) |
| Get the value of a keyword. More...
|
|
template<class T>
class casacore::AipsrcValue< T >
Class to read values from the Aipsrc general resource files
Intended use:
Public interface
Review Status
- Reviewed By:
- mhaller
- Date Reviewed:
- 1997/10/08
- Test programs:
- tAipsrcValue
Prerequisite
Etymology
A class for getting values from the Aipsrc files
Synopsis
The static AipsrcValue class can get typed values from the Aipsrc resource files.
The basic interaction with the class is with the static keyword match functions:
const Type &deflt)
static Bool find(T &value, const String &keyword)
The find() functions will, given a keyword, return the value of a matched keyword found in the files.
bool Bool
Define the standard types used by Casacore.
comparable to the standard (String) Aipsrc find.
If the resource file contains a multi-valued keyword, use the AipsrcVector class instead.
The class is templated. For ease of use typedefs are provided for:
AipsrcValue< Double > AipsrcDouble
AipsrcValue< Bool > AipsrcBool
AipsrcVector< Bool > AipsrcVBool
AipsrcValue< Int > AipsrcInt
AipsrcVector< Int > AipsrcVInt
AipsrcVector< Double > AipsrcVDouble
AipsrcVector< String > AipsrcVString
In addition to the above finds, special finds:
const Unit &defun, const Unit &resun)
const Unit &defun, const Unit &resun,
const Type &deflt)
are provided. These finds will read the keyword value as a Quantity. If no units are given, the defun are assumed. The result is converted to the resun, before the value is returned. E.g.
find(x,
"time.offset",
"h",
"d");
will return:
-
2.5/24 for a value specified as 2.5 in resource file
-
2.5/24 for 2:30:00
-
0.5/24 for 30min
-
0.5 for 0.5d
The class has registerRC, get, set
functions as described in Aipsrc. Note that registration is on a per Type basis, and hence registration of the same keyword in different types (and possible sets) act on different values, but with the same result if no set has been done.
Specialisation exists for Bool
, where True
is any value string starting with one of 'yYtT123456789', and False in all other cases, and no finds with Units are provided. Strings are supposed to be handled by standard Aipsrc class for single values, and a specialisation exists for the AipsrcVector case.
Example
String tzoff;
tzoff = -5;
};
A more convenient way of accomplishing the same result is:
or even:
Here the final argument is the default to use if the keyword is not found at all.
Template Type Argument Requirements
-
All types with a
>>
defined.
Warning: Since interpretation of the keyword value string is done with the standard input right-shift operator, specialisations are necessary for non-standard cases like Bool; They are provided; String is supposed to be handled by standard Aipsrc;
Motivation
Programs need a way to interact with the AipsrcValue files.
Thrown Exceptions
-
AipsError if the environment variables HOME and/or AIPSPATH not set.
Definition at line 159 of file AipsrcValue.h.