Go to the documentation of this file.
28 #ifndef CASA_QUANTUMHOLDER_H
29 #define CASA_QUANTUMHOLDER_H
32 #include <casacore/casa/aips.h>
33 #include <casacore/casa/Utilities/PtrHolder.h>
34 #include <casacore/casa/Utilities/RecordTransformable.h>
35 #include <casacore/casa/BasicSL/Complexfwd.h>
42 class RecordInterface;
44 template <
class Qtype>
class Quantum;
45 template <
class T>
class Vector;
46 template <
class T>
class Array;
virtual Bool fromRecord(String &error, const RecordInterface &in)
Create a Quantum from a record or a string.
const Quantum< Vector< Double > > & asQuantumVectorDouble()
QuantumHolder()
Creates an empty holder.
const Quantum< Vector< Float > > & asQuantumVectorFloat()
Bool isEmpty() const
Check if it holds a Quantity.
Bool isQuantumComplex() const
Bool isQuantumVectorComplex() const
const Quantum< Float > & asQuantumFloat()
A holder for Quantums to enable record conversions.
virtual Record toRecord() const
this version throws an exception or returns the result Record.
virtual const String & ident() const
Return identification.
Int nelements() const
Get number of numeric elements (1 if scalar, else vector length) or dimensions (0 if scalar)
Bool isQuantumFloat() const
Bool isQuantumVectorDouble() const
QuantumHolder & operator=(const QuantumHolder &other)
Assignment (copy semantics)
const Quantum< Array< DComplex > > & asQuantumArrayDComplex()
Bool isQuantumArrayInt() const
PtrHolder< QBase > hold_p
Pointer to a Quantity.
Bool isQuantumVectorInt() const
Bool isQuantumArrayDouble() const
Hold and delete pointers not deleted by object destructors.
const Quantum< DComplex > & asQuantumDComplex()
void toReal(const uInt &tp)
Convert to a different real scalar quantum.
Base for Quantities (i.e. dimensioned values)
const Quantum< Double > & asQuantumDouble()
const Quantum< Vector< Complex > > & asQuantumVectorComplex()
const QBase & asQuantum() const
Get a Quantum from the holder (with lifetime as long as holder exists).
void toVector()
Convert scalar to Vector.
Bool isQuantumInt() const
Bool isQuantumDComplex() const
this file contains all the compiler specific defines
const Quantum< Double > & asQuantity()
const Quantum< Int > & asQuantumInt()
const Quantum< Vector< DComplex > > & asQuantumVectorDComplex()
void toComplex(const uInt &tp)
Convert to a different complex scalar quantum.
const Quantum< Array< Double > > & asQuantumArrayDouble()
Abstract base class for Record classes.
Bool isQuantumVectorFloat() const
const Quantum< Array< Int > > & asQuantumArrayInt()
String: the storage and methods of handling collections of characters.
const Quantum< Array< Complex > > & asQuantumArrayComplex()
virtual Bool fromString(String &error, const String &in)
Initialise the class from a String representation.
Bool isQuantumDouble() const
bool Bool
Define the standard types used by Casacore.
void toArray()
Convert scalar to Array.
Bool isQuantumArrayComplex() const
A hierarchical collection of named fields of various types.
const Quantum< Array< Float > > & asQuantumArrayFloat()
const Quantum< Vector< Int > > & asQuantumVectorInt()
Bool isQuantumArrayDComplex() const
Bool isQuantumArrayFloat() const
Bool isQuantumVectorDComplex() const
const Quantum< Complex > & asQuantumComplex()