30 #ifndef CASA_RECORDDESC_H 
   31 #define CASA_RECORDDESC_H 
  200     DataType 
type (
Int whichField) 
const;
 
  284                Bool& equalDataTypes) 
const;
 
  294     ostream& 
put (ostream& os) 
const;
 
  310 : desc_p (other.desc_p)
 
  315     if (
this != &other) {
 
  326     return desc_p.rwRef().addField (fieldName, dataType);
 
  330                   DataType scalarOrArrayType,
 
  333     return desc_p.rwRef().addArray (fieldName, scalarOrArrayType, shape);
 
  339     return desc_p.rwRef().addRecord (fieldName, subDesc);
 
  343                   const String& tableDescName)
 
  345     return desc_p.rwRef().addTable (fieldName, tableDescName);
 
  350     return desc_p.ref().comment (whichField);
 
  355     desc_p.rwRef().setComment (whichField, comment);
 
  360     desc_p.rwRef().setShape (whichField, shape);
 
  364                    Int whichFieldFromOther,
 
  367     return desc_p.rwRef().mergeField (other.
desc_p.ref(), whichFieldFromOther,
 
  374     return desc_p.rwRef().merge (other.
desc_p.ref(), duplicateAction);
 
  379     return desc_p.rwRef().removeField (whichField);
 
  384     desc_p.rwRef().renameField (newName, whichField);
 
  389     return desc_p.ref().fieldNumber (fieldName);
 
  394     return desc_p.ref().nfields();
 
  399     return desc_p.ref().type (whichField);
 
  404     return desc_p.ref().uniqueName (name);
 
  409     return desc_p.ref().makeName (whichField);
 
  414     return desc_p.ref().name (whichField);
 
  419     return desc_p.ref().isArray (whichField);
 
  424     return desc_p.ref().isScalar (whichField);
 
  429     return desc_p.ref().isSubRecord (whichField);
 
  434     return desc_p.ref().isTable (whichField);
 
  439     return desc_p.ref().shape (whichField);
 
  444     return desc_p.ref().tableDescName (whichField);
 
  449     return desc_p.ref().subRecord (whichField);
 
  454     return desc_p.rwRef().subRecord (whichField);
 
  472                  Bool& equalDataTypes)
 const 
  474     return desc_p.ref().isEqual (other.
desc_p.ref(), equalDataTypes);
 
  477                   Bool& equalDataTypes)
 const 
  479     return desc_p.ref().isSubset (other.
desc_p.ref(), equalDataTypes);
 
  482                     Bool& equalDataTypes)
 const 
  484     return desc_p.ref().isStrictSubset (other.
desc_p.ref(), equalDataTypes);
 
  487                     Bool& equalDataTypes)
 const 
  489     return other.
desc_p.ref().isSubset (
desc_p.ref(), equalDataTypes);
 
  492                       Bool& equalDataTypes)
 const 
  494     return other.
desc_p.ref().isStrictSubset (
desc_p.ref(), equalDataTypes);
 
  504     return desc.
put (os);
 
  508     return desc.
put (os);
 
  512     return desc.
get (os);
 
RecordDesc()
Create a description with no fields. 
void renameField(const String &newName, Int whichField)
Rename the given field. 
A Vector of integers, for indexing into Array<T> objects. 
DataType type(Int whichField) const 
What is the type of the given field. 
Bool isTable(Int whichField) const 
Returns True if whichField is a table. 
uInt addField(const String &fieldName, DataType dataType)
Add scalar, array, sub-record, or table field. 
const IPosition & shape(Int whichField) const 
What is the shape of the given field. 
COWPtr< RecordDescRep > desc_p
Use a copy-on-write pointer to the RecordDescRep. 
AipsIO is the object persistency mechanism of Casacore. 
Representation of a RecordDesc. 
Bool isScalar(Int whichField) const 
Returns True if whichField is a scalar. 
Bool isStrictSuperset(const RecordDesc &other, Bool &equalDataTypes) const 
Test if this description is a strict superset of another one, thus if it is a superset and not equal...
ostream & operator<<(ostream &os, const IComplex &)
Show on ostream. 
Bool isSubRecord(Int whichField) const 
Returns True if whichField is a sub-record. 
RecordDesc & rwSubRecord(Int whichField)
uInt removeField(Int whichField)
Remove the given field from the description. 
const String & comment(Int whichField) const 
Get the comment for this field. 
Bool isSubset(const RecordDesc &other, Bool &equalDataTypes) const 
Test if this description is a subset of another one. 
ostream & put(ostream &os) const 
Writes/reads the RecordDesc to/from an output stream. 
Bool isDisjoint(const RecordDesc &other) const 
Test if the set of field names in this and other record description is disjoint (i.e. 
Bool operator!=(const RecordDesc &other) const 
const String & tableDescName(Int whichField) const 
What is the name of the table description. 
Bool isEqual(const RecordDesc &other, Bool &equalDataTypes) const 
Test if this description equals another one. 
const RecordDesc & subRecord(Int whichField) const 
If whichField is a sub-record return its description. 
Description of the fields in a record object. 
Bool isStrictSubset(const RecordDesc &other, Bool &equalDataTypes) const 
Test if this description is a strict subset of another one, thus if it is a subset and not equal...
Bool operator==(const RecordDesc &other) const 
This and other compare equal if the field types and shapes are identical (recursively if there are de...
Copy-On-Write-Pointer class - allows control of copy based on constness. 
DuplicatesFlag
Define the Duplicates flag for the function merge in the various record classes. 
uInt addTable(const String &fieldName, const String &tableDescName)
Add a Table field to the description. 
bool Bool
Define the standard types used by Casacore. 
const String & name(Int whichField) const 
What is the name of the given field. 
uInt merge(const RecordDesc &other, RecordInterface::DuplicatesFlag DuplicateAction=RecordInterface::ThrowOnDuplicates)
Add all the fields from another RecordDesc to the current objects. 
TableExprNode shape(const TableExprNode &array)
Function operating on any scalar or array resulting in a Double array containing the shape...
Bool conform(const RecordDesc &other) const 
Test if this description conforms the other. 
Int fieldNumber(const String &fieldName) const 
Returns the index of the field named fieldName. 
void setShape(Int whichField, const IPosition &shape)
Set the shape for this field. 
String uniqueName(const String &name) const 
Make the given name unique by adding a suffix _j when needed. 
void setComment(Int whichField, const String &comment)
Set the comment for this field. 
friend AipsIO & operator>>(AipsIO &os, RecordDesc &desc)
Bool isSuperset(const RecordDesc &other, Bool &equalDataTypes) const 
Test if this description is a superset of another one. 
friend ostream & operator<<(ostream &os, const RecordDesc &desc)
Writes/reads the RecordDesc to/from an output stream. 
String: the storage and methods of handling collections of characters. 
RecordDesc & operator=(const RecordDesc &other)
Replace this description with other. 
String makeName(Int whichField) const 
Create a name for a field defined by index as *i (similar to glish). 
AipsIO & operator>>(AipsIO &os, Record &rec)
uInt nfields() const 
Number of fields in the description. 
uInt mergeField(const RecordDesc &other, Int whichFieldFromOther, RecordInterface::DuplicatesFlag DuplicateAction=RecordInterface::ThrowOnDuplicates)
Merge a single field from other. 
Bool isArray(Int whichField) const 
Returns True if whichField is an array.