26#ifndef CASA_QUANTUMHOLDER_H
27#define CASA_QUANTUMHOLDER_H
30#include <casacore/casa/aips.h>
31#include <casacore/casa/Arrays/ArrayFwd.h>
32#include <casacore/casa/Utilities/RecordTransformable.h>
33#include <casacore/casa/BasicSL/Complexfwd.h>
43template <
class Qtype>
class Quantum;
const Quantum< Double > & asQuantity()
Bool isQuantumDouble() const
Bool isQuantumDComplex() const
const QBase & asQuantum() const
Get a Quantum from the holder (with lifetime as long as holder exists).
Bool isQuantumVectorComplex() const
Bool isQuantumArrayDComplex() const
Bool isQuantumArrayFloat() const
void toComplex(const uInt &tp)
Convert to a different complex scalar quantum.
Bool isEmpty() const
Check if it holds a Quantity.
const Quantum< Array< Float > > & asQuantumArrayFloat()
const Quantum< Array< Double > > & asQuantumArrayDouble()
QuantumHolder(const QuantumHolder &other)
Copy a holder (copy semantics)
Bool isQuantumVectorDouble() const
Bool isQuantumComplex() const
void toArray()
Convert scalar to Array.
Int nelements() const
Get number of numeric elements (1 if scalar, else vector length) or dimensions (0 if scalar)
QuantumHolder(const QBase &in)
Create from a Quantum (copy semantics)
Bool isQuantumArrayInt() const
const Quantum< Array< DComplex > > & asQuantumArrayDComplex()
void toReal(const uInt &tp)
Convert to a different real scalar quantum.
const Quantum< Double > & asQuantumDouble()
QuantumHolder()
Creates an empty holder.
QuantumHolder & operator=(const QuantumHolder &other)
Assignment (copy semantics)
Bool isQuantumVectorDComplex() const
virtual Bool toRecord(String &error, RecordInterface &out) const
Create a record from a Quantum.
virtual Bool fromString(String &error, const String &in)
Initialise the class from a String representation.
const Quantum< DComplex > & asQuantumDComplex()
const Quantum< Vector< Double > > & asQuantumVectorDouble()
virtual Record toRecord() const
this version throws an exception or returns the result Record.
std::unique_ptr< QBase > hold_p
Pointer to a Quantity.
const Quantum< Float > & asQuantumFloat()
const Quantum< Array< Complex > > & asQuantumArrayComplex()
const Quantum< Vector< Complex > > & asQuantumVectorComplex()
virtual Bool fromRecord(String &error, const RecordInterface &in)
Create a Quantum from a record or a string.
Bool isQuantumFloat() const
void toVector()
Convert scalar to Vector.
const Quantum< Int > & asQuantumInt()
Bool isQuantumVectorInt() const
Bool isQuantumArrayDouble() const
Bool isQuantumInt() const
Bool isQuantumVectorFloat() const
const Quantum< Vector< DComplex > > & asQuantumVectorDComplex()
const Quantum< Complex > & asQuantumComplex()
const Quantum< Array< Int > > & asQuantumArrayInt()
virtual const String & ident() const
Return identification.
virtual void toRecord(RecordInterface &out) const
this version throws an exception rather than returning false
const Quantum< Vector< Float > > & asQuantumVectorFloat()
const Quantum< Vector< Int > > & asQuantumVectorInt()
Bool isQuantumArrayComplex() const
String: the storage and methods of handling collections of characters.
this file contains all the compiler specific defines
bool Bool
Define the standard types used by Casacore.