template <class ColumnType> class DfcColumnData : public DfcColumnInterface


Inheritance:


Public Methods

void addImplementation (int tableId, int columnId)
virtual DfcColumnData <ColumnType> * clone (void)
void deselect (void)
DfcColumnData ( const RWString &newName, int numRows, DFC_BOOL regularlySampled = DFC_TRUE )
DfcColumnData ( const RWString &name, const DFC_EXPRESSION &expr, int numRows, DFC_BOOL onTheFly = DFC_TRUE )
DfcColumnData ( const DfcColumnData<ColumnType> &other )
DfcColumnData ( const DfcColumnInterface &other )
virtual char getAsChar (int whichElement = 0)
virtual DfcCoordSys getAsCoordSys (int whichElement = 0)
virtual double getAsDouble (int whichElement = 0)
virtual double getAsDouble ( const DfcVector<int> &position )
virtual DfcEnumerated getAsEnumerated (int whichElement = 0)
virtual float getAsFloat (int whichElement = 0)
virtual DfcFrameRef getAsFrameRef (int whichElement = 0)
virtual int getAsInt (int whichElement = 0)
virtual long getAsLong (int whichElement = 0)
virtual long getAsLong ( const DfcVector<int> &position )
virtual short getAsShort (int whichElement = 0)
virtual RWString getAsString (int whichElement = 0)
virtual DfcTableRef getAsTableRef (int whichElement = 0)
virtual DfcTarget getAsTarget (int whichElement = 0)
virtual DfcTime getAsTime (int whichElement = 0)
virtual unsigned char getAsUchar (int whichElement = 0)
DfcVector <int> getDimensions (void)
ColumnType* getElement ( int whichElement )
DfcKeyword* getKeywords (void)
RWString getName (void)
ColumnType* getNull (void)
virtual char getNullValueAsChar (void)
virtual DfcCoordSys getNullValueAsCoordSys (void)
virtual double getNullValueAsDouble (void)
virtual DfcEnumerated getNullValueAsEnumerated (void)
virtual DfcFrameRef getNullValueAsFrameRef (void)
virtual RWString getNullValueAsString (void)
virtual DfcTableRef getNullValueAsTableRef (void)
virtual DfcTarget getNullValueAsTarget (void)
virtual DfcTime getNullValueAsTime (void)
int getNumPoints (void)
int getNumRows (void)
DfcColumn* getSafeInterface (void)
DFC_BOOL isNullValueSet (void)
DFC_BOOL isSelected (void)
virtual DFC_BOOL openForRead (void)
virtual DFC_BOOL openForUpdate (void)
virtual DfcVector <DFC_BOOL> operator!= (double value)
virtual DfcVector <DFC_BOOL> operator!= (const DfcEnumeratedInterface &value)
virtual DfcVector <DFC_BOOL> operator!= (const DfcTimeInterface &value)
virtual DfcVector <DFC_BOOL> operator!= (const DfcTargetInterface &value)
virtual DfcVector <DFC_BOOL> operator!= (const DfcCoordSysInterface &value)
virtual DfcVector <DFC_BOOL> operator!= (DfcFrameRef &value)
virtual DfcVector <DFC_BOOL> operator!= (char value)
virtual DfcVector <DFC_BOOL> operator!= (const RWString &value)
virtual DfcVector <DFC_BOOL> operator!= (DfcTableRef &value)
virtual DfcVector <DFC_BOOL> operator< (char value)
virtual DfcVector <DFC_BOOL> operator< (const DfcEnumeratedInterface &value)
virtual DfcVector <DFC_BOOL> operator< (const DfcTimeInterface &value)
virtual DfcVector <DFC_BOOL> operator< (const RWString &value)
virtual DfcVector <DFC_BOOL> operator< (const DfcCoordSysInterface &value)
virtual DfcVector <DFC_BOOL> operator< (DfcFrameRef &value)
virtual DfcVector <DFC_BOOL> operator< (double value)
virtual DfcVector <DFC_BOOL> operator< (DfcTableRef &value)
virtual DfcVector <DFC_BOOL> operator< (const DfcTargetInterface &value)
virtual DfcVector <DFC_BOOL> operator<= (const DfcEnumeratedInterface &value)
virtual DfcVector <DFC_BOOL> operator<= (DfcFrameRef &value)
virtual DfcVector <DFC_BOOL> operator<= (DfcTableRef &value)
virtual DfcVector <DFC_BOOL> operator<= (char value)
virtual DfcVector <DFC_BOOL> operator<= (double value)
virtual DfcVector <DFC_BOOL> operator<= (const RWString &value)
virtual DfcVector <DFC_BOOL> operator<= (const DfcTimeInterface &value)
virtual DfcVector <DFC_BOOL> operator<= (const DfcTargetInterface &value)
virtual DfcVector <DFC_BOOL> operator<= (const DfcCoordSysInterface &value)
virtual DfcColumnData <ColumnType> & operator= (const DfcColumnInterface &other)
virtual DfcVector <DFC_BOOL> operator== (DfcTableRef &value)
virtual DfcVector <DFC_BOOL> operator== (const DfcEnumeratedInterface &value)
virtual DfcVector <DFC_BOOL> operator== (DfcFrameRef &value)
virtual DfcVector <DFC_BOOL> operator== (char value)
virtual DfcVector <DFC_BOOL> operator== (const RWString &value)
virtual DfcVector <DFC_BOOL> operator== (const DfcCoordSysInterface &value)
virtual DfcVector <DFC_BOOL> operator== (const DfcTargetInterface &value)
virtual DfcVector <DFC_BOOL> operator== (double value)
virtual DfcVector <DFC_BOOL> operator== (const DfcTimeInterface &value)
virtual DfcVector <DFC_BOOL> operator> (char value)
virtual DfcVector <DFC_BOOL> operator> (const DfcTargetInterface &value)
virtual DfcVector <DFC_BOOL> operator> (const DfcEnumeratedInterface &value)
virtual DfcVector <DFC_BOOL> operator> (const DfcCoordSysInterface &value)
virtual DfcVector <DFC_BOOL> operator> (DfcFrameRef &value)
virtual DfcVector <DFC_BOOL> operator> (double value)
virtual DfcVector <DFC_BOOL> operator> (const RWString &value)
virtual DfcVector <DFC_BOOL> operator> (DfcTableRef &value)
virtual DfcVector <DFC_BOOL> operator> (const DfcTimeInterface &value)
virtual DfcVector <DFC_BOOL> operator>= (double value)
virtual DfcVector <DFC_BOOL> operator>= (const DfcTimeInterface &value)
virtual DfcVector <DFC_BOOL> operator>= (const DfcCoordSysInterface &value)
virtual DfcVector <DFC_BOOL> operator>= (DfcTableRef &value)
virtual DfcVector <DFC_BOOL> operator>= (const DfcTargetInterface &value)
virtual DfcVector <DFC_BOOL> operator>= (DfcFrameRef &value)
virtual DfcVector <DFC_BOOL> operator>= (const DfcEnumeratedInterface &value)
virtual DfcVector <DFC_BOOL> operator>= (const RWString &value)
virtual DfcVector <DFC_BOOL> operator>= (char value)
void proxyIsDead (void)
virtual DFC_BOOL save (void)
void saveAsMidas (int fileId)
void select (void)
virtual void set (short newValue, int whichElement = 0)
virtual void set ( const DfcVector<int> &position, double newVal )
virtual void set (long newValue, int whichElement = 0)
virtual void set (int newValue, int whichElement = 0)
virtual void set (float newValue, int whichElement = 0)
void set ( int whichPosition, long newVal )
virtual void set ( const DfcVector<int> &position, long newVal )
virtual void set (double newValue, int whichElement = 0)
void set ( int whichPosition, double newVal )
virtual void set (unsigned char newValue, int whichElement = 0)
virtual void setAsChar (char newValue, int whichElement = 0)
virtual void setAsCoordSys (const DfcCoordSysInterface &newValue, int whichElement = 0)
virtual void setAsEnumerated (const DfcEnumeratedInterface &newValue, int whichElement = 0)
virtual void setAsFrameRef (DfcFrameRef &newValue, int whichElement = 0)
virtual void setAsString (const RWString &newValue, int whichElement = 0)
virtual void setAsTableRef (DfcTableRef &newValue, int whichElement = 0)
virtual void setAsTarget (const DfcTargetInterface &newValue, int whichElement = 0)
virtual void setAsTime (const DfcTimeInterface &newValue, int whichElement = 0)
void setElement ( const whichElement, ColumnType *newValue )
void setName ( const RWString &newName )
void setNull (ColumnType *newValue)
virtual void setNullValueAsChar (char newValue)
virtual void setNullValueAsCoordSys (const DfcCoordSysInterface &newValue)
virtual void setNullValueAsDouble ( double newValue )
virtual void setNullValueAsEnumerated (const DfcEnumeratedInterface &newValue)
virtual void setNullValueAsFrameRef (DfcFrameRef &newValue)
virtual void setNullValueAsString (const RWString &newValue)
virtual void setNullValueAsTableRef (DfcTableRef &newValue)
virtual void setNullValueAsTarget (const DfcTargetInterface &newValue)
virtual void setNullValueAsTime (const DfcTimeInterface &newValue)
void unsetNullValue (void)
virtual ~DfcColumnData ()
Dtor. Free memory

Public


Purpose
Comparison operator for Columns of ints against a single int value

Purpose
TEMPORARY METHOD added to assist in the Midas implementation

Purpose
Copy constructor

Purpose
Copy constructor

Purpose
Constructor for DfcColumnData

Exceptions

  • DfcMemoryExc - there wasn't enough memory to create this column with the desired space

Purpose
Constructor

Purpose
Obtain the number of rows in the Column

Purpose
Sets the representation of the Null Value for this Column

Purpose
Returns the Columns internal representation for a Null Value

Purpose
Remove any current setting of the null value for this Column

Purpose
Indicates whether the null value representation has been set and is being used or not

Purpose
Returns the status of the Column, whether it is currently selected or not

Purpose
A Column can be either selected or not

Purpose
A Column can be either Selcted or not

Purpose
Accessor for the name of the Column;

Returns
Returns a copy of the name of the Column


Purpose
Sets the name for the Column

Exceptions

  • DfcAlreadyExistsExc - this Column is part of a table and the new name already exists in that table

Purpose
Less than operator for Columns of Type against a single value

Purpose
Greater than operator for Columns of ints against a single int value

VLT On-line Data Flow, Subsystem: df-core
$Id: DfcColumnData

Purpose
Comparison operator for Columns of ints against a single int value

Purpose
Comparison operator for Columns of ints against a single int value

Purpose
Comparison operator for Columns of ints against a single int value

Purpose
Return the Keywords associated with this Column

Purpose
Make a copy of this object

Purpose
Perform a shallow copy of the Column

Purpose
In a distributed system this method will load the Column object that has been created on the local machine with the information from the Image Repository

Purpose
Intended to be used when the classes go distributed

Purpose
One of the methods that will be used when the classes are distributed

Purpose
Returns the dimensions of the thing we are dealing with

Purpose
Obtain a data value as double

Purpose
Obtain a data value as int

Purpose
Set a data value as double

Purpose
Set a data value as an int

Purpose
Return a pointer to the actual object that this object refers to, if it is a proxy

Protected Fields

int midasColumnNum
TEMPORARY MEMBER DATA - should be private but that would mean having to add extra methods
int midasTableHandle
Purpose
Informs this object that its proxy object has been deleted

Protected


Purpose
Sets an element in the data

Purpose
sets the representation of the null value

Purpose
Get an element from the implementation, regardless of the representation

Purpose
Tells the column to save itself

TEMPORARY MEMBER DATA - shoudl be private but that would mean having to add extra methods

Private Fields


temporary member data while the implementation is being performed by MIDAS
DfcColumnImplementation <ColumnType> * implementation
The number of rows in this column
DfcKeywordStructure keywords
The actual data contained in the Column
DfcMidasConfiguration midasEnvironment
Store a copy of the proxy in this object
RWString name
Returns the internal rep
ColumnType* nullValue
Keywords attached to only this Column
int numRows
A name for the column
DfcColumn* proxy
Is this Column currently selected or not?
DFC_BOOL selected
A representation for the null value for the column

Documentation

VLT On-line Data Flow, Subsystem: df-core
$Id: DfcColumnData.h,v 1.1 1997/05/15 07:45:31 dataflow Exp $

DESCRIPTION
Provides commonality between all realetd subclasses. At this stage in the hierarchy all operations that operate upon data are considered to be invalid and simply generate a DfcTypeExc exception by default (eg getAsDouble, setNullValueAsCoordSys etc.). Valid implementations of these methods are provided in the derived classes. This affords us more type safety and also the desired type transparency as far as possible.

EXAMPLES
See DfcColumn.h for useful examples.

DfcColumnData( const DfcColumnData<ColumnType> &other )

Purpose
Copy constructor. Only perform a shallow copy, in this case it means that the actual data will be shared between the original and the new copy, in effect pretty useless really.

Exceptions

  • DfcMemoryExc - there wasn't enough memory on the local machine to make a copy.
  • DfcAlreadyOpenExc - the Column is already opened for update and therefore a copy can't be made.

Arguments

DfcColumnData( const DfcColumnInterface &other )

Purpose
Copy constructor. Only perform a shallow copy, in this case it means that the actual data will be shared between the original and the new copy, in effect pretty useless really.

Exceptions

  • DfcMemoryExc - there wasn't enough memory on the local machine to make a copy.
  • DfcAlreadyOpenExc - the Column is already opened for update and therefore a copy can't be made.

Arguments

DfcColumnData( const RWString &newName, int numRows, DFC_BOOL regularlySampled = DFC_TRUE )

Purpose
Constructor for DfcColumnData

Exceptions

  • DfcMemoryExc - there wasn't enough memory to create this column with the desired space.

Arguments

DfcColumnData( const RWString &name, const DFC_EXPRESSION &expr, int numRows, DFC_BOOL onTheFly = DFC_TRUE )

Purpose
Constructor. Creates values for the Column entries based upon the provided ewxpression. The values can either be constructed all at once or on the fly. If they are created on the fly and an attempt is made to write to the Column then the column will be made into a regularly sampled column, transparently to the user.

Exceptions

  • DfcMemoryExc - there wasn't enough memory to create this column with the desired space.
  • DfcInvalidExpExc - the provided expression was not valid.

Arguments

virtual ~DfcColumnData()
Dtor. Free memory

int getNumRows(void)

Purpose
Obtain the number of rows in the Column

virtual void setNullValueAsDouble( double newValue )

Purpose
Sets the representation of the Null Value for this Column. Note that this is particularly dangerous for Columns of scalars. If the internal representation of data is of type int, and we set a null value that is a double, we lose a lot of accuracy and the null value then covers more range than perhaps was desired.
At this level in the hierarchy all these operations are given a default nehaviour which generates a DfcTypeExc exception. The valid versions of these methods are provided in the leaf classes which overrides this default behaviour.

Exceptions


  • DfcTypeExc - the actual data contained in the Column is such that it does not make sense to have a null value that is a double.

Arguments

virtual double getNullValueAsDouble(void)

Purpose
Returns the Columns internal representation for a Null Value. I have decided not to throw an exception if a get() is made on a Null value as this will encourage people to use exceptions for flow control rather than for error handling.

Returns
The current representation of the Null value.

Exceptions

  • DfcTypeExc - it is not possible to express the type of the Column as a double.

virtual void setNullValueAsCoordSys(const DfcCoordSysInterface &newValue)

virtual DfcCoordSys getNullValueAsCoordSys(void)

virtual void setNullValueAsTime(const DfcTimeInterface &newValue)

virtual DfcTime getNullValueAsTime(void)

virtual void setNullValueAsFrameRef(DfcFrameRef &newValue)

virtual DfcFrameRef getNullValueAsFrameRef(void)

virtual void setNullValueAsString(const RWString &newValue)

virtual RWString getNullValueAsString(void)

virtual void setNullValueAsTableRef(DfcTableRef &newValue)

virtual DfcTableRef getNullValueAsTableRef(void)

virtual void setNullValueAsChar(char newValue)

virtual char getNullValueAsChar(void)

virtual void setNullValueAsEnumerated(const DfcEnumeratedInterface &newValue)

virtual DfcEnumerated getNullValueAsEnumerated(void)

virtual void setNullValueAsTarget(const DfcTargetInterface &newValue)

virtual DfcTarget getNullValueAsTarget(void)

void unsetNullValue(void)

Purpose
Remove any current setting of the null value for this Column

DFC_BOOL isNullValueSet(void)

Purpose
Indicates whether the null value representation has been set and is being used or not. It may be concievable in some situations that it isn't desirable to waste a possibly valid value on a null representation.

Returns
A Boolean stating whether the Null value representation has been set or not.

DFC_BOOL isSelected(void)

Purpose
Returns the status of the Column, whether it is currently selected or not.

Returns
Status of the Column, selected or not.

void select(void)

Purpose
A Column can be either selected or not. This method tells a Column that it is selected. A Column is not selected by default.

void deselect(void)

Purpose
A Column can be either Selcted or not. This method informs the Column that it is not selected. A Column is not selected by default.

RWString getName(void)

Purpose
Accessor for the name of the Column;

Returns
Returns a copy of the name of the Column. Actually copies the name rather than returning a reference in order to make sure we don't have any dangling pointers or references later.

void setName( const RWString &newName )

Purpose
Sets the name for the Column

Exceptions

  • DfcAlreadyExistsExc - this Column is part of a table and the new name already exists in that table. If this exception is raised then the name of the Column stays as it was.

Arguments

virtual DfcVector <DFC_BOOL> operator<(double value)

Purpose
Less than operator for Columns of Type against a single value. The Column will perform the comparison against every single value contained in the Column returning a boolean value for every entry indicating whether the coimparison was true or false.

Arguments

  • value - the value to compare each entry in the column against.

Returns
A vector of booleans. The length of this vector is the same as the Column. Each entry in the vector indicates whether the corresponding entry in the Column passed the comparison or not.

Exceptions

  • DfcTypeExc - the type presented as an argument cannot be compared against the actual type of the Column.

virtual DfcVector <DFC_BOOL> operator>(double value)

Purpose
Greater than operator for Columns of ints against a single int value. The Column will perform the comparison against every single int contained in the Column returning a boolean value for every entry indicating whether the coimparison was true or false.

Arguments

  • value - the integer value to compare each entry in the column against.

Returns
A vector of booleans. The length of this vector is the same as the Column. Each entry in the vector indicates whether the corresponding entry in the Column passed the comparison or not.

Exceptions

  • DfcTypeExc - the type presented as an argument cannot be compared against the actual type of the Column.

virtual DfcVector <DFC_BOOL> operator>=(double value)

Purpose
Comparison operator for Columns of ints against a single int value. The Column will perform the comparison against every single int contained in the Column returning a boolean value for every entry indicating whether the coimparison was true or false.

Arguments

  • value - the integer value to compare each entry in the column against.

Returns
A vector of booleans. The length of this vector is the same as the Column. Each entry in the vector indicates whether the corresponding entry in the Column passed the comparison or not.

Exceptions

  • DfcTypeExc - the type presented as an argument cannot be compared against the actual type of the Column.

virtual DfcVector <DFC_BOOL> operator<=(double value)

Purpose
Comparison operator for Columns of ints against a single int value. The Column will perform the comparison against every single int contained in the Column returning a boolean value for every entry indicating whether the coimparison was true or false.

Arguments

  • value - the integer value to compare each entry in the column against.

Returns
A vector of booleans. The length of this vector is the same as the Column. Each entry in the vector indicates whether the corresponding entry in the Column passed the comparison or not.

Exceptions

  • DfcTypeExc - the type presented as an argument cannot be compared against the actual type of the Column.

virtual DfcVector <DFC_BOOL> operator==(double value)

Purpose
Comparison operator for Columns of ints against a single int value. The Column will perform the comparison against every single int contained in the Column returning a boolean value for every entry indicating whether the coimparison was true or false.

Arguments

  • value - the integer value to compare each entry in the column against.

Returns
A vector of booleans. The length of this vector is the same as the Column. Each entry in the vector indicates whether the corresponding entry in the Column passed the comparison or not.

Exceptions

  • DfcTypeExc - the type presented as an argument cannot be compared against the actual type of the Column.

virtual DfcVector <DFC_BOOL> operator!=(double value)

Purpose
Comparison operator for Columns of ints against a single int value. The Column will perform the comparison against every single int contained in the Column returning a boolean value for every entry indicating whether the coimparison was true or false.

Arguments

  • value - the integer value to compare each entry in the column against.

Returns
A vector of booleans. The length of this vector is the same as the Column. Each entry in the vector indicates whether the corresponding entry in the Column passed the comparison or not.

Exceptions

  • DfcTypeExc - the type presented as an argument cannot be compared against the actual type of the Column.

virtual DfcVector <DFC_BOOL> operator<(const DfcCoordSysInterface &value)

virtual DfcVector <DFC_BOOL> operator<=(const DfcCoordSysInterface &value)

virtual DfcVector <DFC_BOOL> operator>(const DfcCoordSysInterface &value)

virtual DfcVector <DFC_BOOL> operator>=(const DfcCoordSysInterface &value)

virtual DfcVector <DFC_BOOL> operator==(const DfcCoordSysInterface &value)

virtual DfcVector <DFC_BOOL> operator!=(const DfcCoordSysInterface &value)

virtual DfcVector <DFC_BOOL> operator<(const DfcTimeInterface &value)

virtual DfcVector <DFC_BOOL> operator<=(const DfcTimeInterface &value)

virtual DfcVector <DFC_BOOL> operator>(const DfcTimeInterface &value)

virtual DfcVector <DFC_BOOL> operator>=(const DfcTimeInterface &value)

virtual DfcVector <DFC_BOOL> operator==(const DfcTimeInterface &value)

virtual DfcVector <DFC_BOOL> operator!=(const DfcTimeInterface &value)

virtual DfcVector <DFC_BOOL> operator<(DfcFrameRef &value)

virtual DfcVector <DFC_BOOL> operator<=(DfcFrameRef &value)

virtual DfcVector <DFC_BOOL> operator>(DfcFrameRef &value)

virtual DfcVector <DFC_BOOL> operator>=(DfcFrameRef &value)

virtual DfcVector <DFC_BOOL> operator==(DfcFrameRef &value)

virtual DfcVector <DFC_BOOL> operator!=(DfcFrameRef &value)

virtual DfcVector <DFC_BOOL> operator<(const RWString &value)

virtual DfcVector <DFC_BOOL> operator<=(const RWString &value)

virtual DfcVector <DFC_BOOL> operator>(const RWString &value)

virtual DfcVector <DFC_BOOL> operator>=(const RWString &value)

virtual DfcVector <DFC_BOOL> operator==(const RWString &value)

virtual DfcVector <DFC_BOOL> operator!=(const RWString &value)

virtual DfcVector <DFC_BOOL> operator<(DfcTableRef &value)

virtual DfcVector <DFC_BOOL> operator<=(DfcTableRef &value)

virtual DfcVector <DFC_BOOL> operator>(DfcTableRef &value)

virtual DfcVector <DFC_BOOL> operator>=(DfcTableRef &value)

virtual DfcVector <DFC_BOOL> operator==(DfcTableRef &value)

virtual DfcVector <DFC_BOOL> operator!=(DfcTableRef &value)

virtual DfcVector <DFC_BOOL> operator<(char value)

virtual DfcVector <DFC_BOOL> operator<=(char value)

virtual DfcVector <DFC_BOOL> operator>(char value)

virtual DfcVector <DFC_BOOL> operator>=(char value)

virtual DfcVector <DFC_BOOL> operator==(char value)

virtual DfcVector <DFC_BOOL> operator!=(char value)

virtual DfcVector <DFC_BOOL> operator<(const DfcEnumeratedInterface &value)

virtual DfcVector <DFC_BOOL> operator<=(const DfcEnumeratedInterface &value)

virtual DfcVector <DFC_BOOL> operator>(const DfcEnumeratedInterface &value)

virtual DfcVector <DFC_BOOL> operator>=(const DfcEnumeratedInterface &value)

virtual DfcVector <DFC_BOOL> operator==(const DfcEnumeratedInterface &value)

virtual DfcVector <DFC_BOOL> operator!=(const DfcEnumeratedInterface &value)

virtual DfcVector <DFC_BOOL> operator<(const DfcTargetInterface &value)

virtual DfcVector <DFC_BOOL> operator<=(const DfcTargetInterface &value)

virtual DfcVector <DFC_BOOL> operator>(const DfcTargetInterface &value)

virtual DfcVector <DFC_BOOL> operator>=(const DfcTargetInterface &value)

virtual DfcVector <DFC_BOOL> operator==(const DfcTargetInterface &value)

virtual DfcVector <DFC_BOOL> operator!=(const DfcTargetInterface &value)

virtual float getAsFloat(int whichElement = 0)

virtual double getAsDouble(int whichElement = 0)

virtual unsigned char getAsUchar(int whichElement = 0)

virtual short getAsShort(int whichElement = 0)

virtual int getAsInt(int whichElement = 0)

virtual long getAsLong(int whichElement = 0)

virtual char getAsChar(int whichElement = 0)

virtual RWString getAsString(int whichElement = 0)

virtual DfcCoordSys getAsCoordSys(int whichElement = 0)

virtual DfcTime getAsTime(int whichElement = 0)

virtual DfcFrameRef getAsFrameRef(int whichElement = 0)

virtual DfcTableRef getAsTableRef(int whichElement = 0)

virtual DfcEnumerated getAsEnumerated(int whichElement = 0)

virtual DfcTarget getAsTarget(int whichElement = 0)

virtual void set(float newValue, int whichElement = 0)

virtual void set(double newValue, int whichElement = 0)

virtual void set(unsigned char newValue, int whichElement = 0)

virtual void set(short newValue, int whichElement = 0)

virtual void set(int newValue, int whichElement = 0)

virtual void set(long newValue, int whichElement = 0)

virtual void setAsChar(char newValue, int whichElement = 0)

virtual void setAsString(const RWString &newValue, int whichElement = 0)

virtual void setAsCoordSys(const DfcCoordSysInterface &newValue, int whichElement = 0)

virtual void setAsTime(const DfcTimeInterface &newValue, int whichElement = 0)

virtual void setAsFrameRef(DfcFrameRef &newValue, int whichElement = 0)

virtual void setAsTableRef(DfcTableRef &newValue, int whichElement = 0)

virtual void setAsEnumerated(const DfcEnumeratedInterface &newValue, int whichElement = 0)

virtual void setAsTarget(const DfcTargetInterface &newValue, int whichElement = 0)

DfcKeyword* getKeywords(void)

Purpose
Return the Keywords associated with this Column.

{large Returns}
A copy of the top level Keyword associated with the Column. This object is a proxy so it doesn't make any diference whether it is treated as a reference or a copy of it is made, both will still alter the Keywords structure. (A reference is not returned beacuse, although it slightly reduces the amount of work to be done, it increases the risk of memory leaks by transferring responsibility of the referenced object to the user.)

virtual DfcColumnData <ColumnType> * clone(void)

Purpose
Make a copy of this object. Altering the copy will not affect this object in any way. (technical - we make a deep copy of this object.) Any referenced Tables and Images will not be copied however (as they are viewed as referenced objects rather than contained objects (irrelevant of the actual OMT assosciation type)).

Returns
A pointer to the copy of this object. The responsibility for the memory management of this copy now lies with the method invoker.

Exceptions

  • DfcMemoryExc - there was not enough memory on the local machine to perform the copy succesfully.
  • DfcAlreadyOpenExc - the original is opened for update. There can only be one copy of a Column open for update at any one time, therefore the clone() operation has to fail.

Arguments

virtual DfcColumnData <ColumnType> & operator=(const DfcColumnInterface &other)

Purpose
Perform a shallow copy of the Column. In this case it will create a new Column that contains the same data and the same Keywords as the original. One can debate the usefulness of this, however it is provided for consistency with other objects in the Frame subsystem where this is useful.

Returns
Reference to this object to allow chaining of assignment operators.

Exceptions

  • DfcAlreadyOpenExc - the original is opened for update. There can only be one copy of a Column open for update at any one time, therefore the clone() operation has to fail.

virtual DFC_BOOL openForRead(void)

Purpose
In a distributed system this method will load the Column object that has been created on the local machine with the information from the Image Repository. The Image Repository (at this early stage) is anticipated as being a logical server where all the image information is stored (in reality the information may well be distributed).All Columns are automatically opened with the same permission as the associated Table. However, the data segment of a column is only populated upon access.

Preconditions
A column with the same name as this object exists.

Returns
DFC_BOOL - indicating whether this object has been populated with data or not. Possible reasons for failure is that a Column with the same name as this object does not exist, or that the Column is already opened for update.

Exceptions

  • DfcDoesntExistExc - attempted to open a Column with a name that does not exist.
  • DfcAlreadyOpenExc - the Column is already open. In this case it has been opened for update by somebody else.

virtual DFC_BOOL openForUpdate(void)

Purpose
Intended to be used when the classes go distributed. This will popolute the local object with data and write permission will be granted so that changes may be made and the changes can be saved back to the Image Repository. All Columns are automatically opened with the same permission as the associated Table. However, the data segment of a column is only populated upon access.

Preconditions
The Column is not currently being used anywhere else. It has not been opened for read or for update.

Returns
Boolean indication of whether the open succeeded or not.Possible reasons for failure is that a Column with the same name as this object does not exist, or that the Column is already opened for update, or for read somewhere else.

Exceptions

  • DfcDoesntExistExc - there is no column existing with the name given.
  • DfcAlreadyOpenExc - the Column is currently open for reading or updating somewhere else.

virtual DFC_BOOL save(void)

Purpose
One of the methods that will be used when the classes are distributed. This will allow whatever changes have been made to the Column to be saved, providing it has been opened for update.

Preconditions
The Table that this Column is associated with has been opened for update, not for read.

Returns
DFC_BOOL - an indication of whether the save succeded or not.

Exceptions

  • DfcReadOnlyExc - an attempt was made to save a Column belonging to a Table that was not opened for update. Opening a Table for read does not disable the possibility of changing the local copy, but the changes cannot be saved back to the Image Repository.

DfcVector <int> getDimensions(void)

Purpose
Returns the dimensions of the thing we are dealing with. Implements a method from DfcNumericalInterface.

Returns
The dimensions of the structure. Rather than raise an exception if something non-numeric is being accessed (ie a KeywordStructure, or a Column of Frames, the Dimensions returned will be zero.

int getNumPoints(void)

virtual double getAsDouble( const DfcVector<int> &position )

Purpose
Obtain a data value as double. Implements the interface inherited from DfcNumericalInterface. At this stage in the hierarchy it simply throws an exception which derived classes can override.

Returns
A double value.

Exceptions

  • DfcTypeExc - Could not convert the value to an int, for example maybe we're dealing with a Column of Coordinate Systems.
  • DfcBoundsExc - the supplied positionVector specified a point outside the bounds of the container object we're using eg we're looking at a column of 30 elements and tried to access element number 50.
  • DfcDimensionsExc - the position vector had the wrong number of elements in it to specify a point. For example, we're examining a Column and supplied a position Vector that did not have exactly one element in it.

Arguments

virtual long getAsLong( const DfcVector<int> &position )

Purpose
Obtain a data value as int. Implements method from DfcNumericalInterface. At this stage in the hierarchy it simply throws an exception which derived classes can override.

Returns
An int value.

Exceptions

  • DfcTypeExc - Could not convert the value to an int, for example maybe we're dealing with a Column of Coordinate Systems.
  • DfcBoundsExc - the supplied positionVector specified a point outside the bounds of the container object we're using eg we're looking at a column of 30 elements and tried to access element number 50.
  • DfcDimensionsExc - the position vector had the wrong number of elements in it to specify a point. For example, we're examining a Column and supplied a position Vector that did not have exactly one element in it.

Arguments

virtual void set( const DfcVector<int> &position, double newVal )

Purpose
Set a data value as double. Implements method from DfcNumericalInterface. At this point in the hierarchy this class simply egnerates an exception. It should be overridden to provide better behaviour.

Exceptions

  • DfcTypeExc - Could not convert the value to an int, for example maybe we're dealing with a Column of Coordinate Systems.
  • DfcBoundsExc - the supplied positionVector specified a point outside the bounds of the container object we're using eg we're looking at a column of 30 elements and tried to access element number 50.
  • DfcDimensionsExc - the position vector had the wrong number of elements in it to specify a point. For example, we're examining a Column and supplied a position Vector that did not have exactly one element in it.

Arguments

virtual void set( const DfcVector<int> &position, long newVal )

Purpose
Set a data value as an int.

Exceptions

  • DfcTypeExc - Could not convert the value to an int, for example maybe we're dealing with a Column of Coordinate Systems.
  • DfcBoundsExc - the supplied positionVector specified a point outside the bounds of the container object we're using eg we're looking at a column of 30 elements and tried to access element number 50.
  • DfcDimensionsExc - the position vector had the wrong number of elements in it to specify a point. For example, we're examining a Column and supplied a position Vector that did not have exactly one element in it.

Arguments

void set( int whichPosition, double newVal )

void set( int whichPosition, long newVal )

DfcColumn* getSafeInterface(void)

Purpose
Return a pointer to the actual object that this object refers to, if it is a proxy.

Returns
A pointer to a DfcKeyword object

void addImplementation(int tableId, int columnId)

Purpose
TEMPORARY METHOD added to assist in the Midas implementation. In a table a column object is created along with the midas implementation and the column object is then given the responsibility for looking after the midas implementation.

void saveAsMidas(int fileId)

Purpose
Tells the column to save itself. This is possibly a temporary method, I'm not sure at the moment. Anyway, it wont impact the users.

ColumnType* getElement( int whichElement )

Purpose
Get an element from the implementation, regardless of the representation. Derived classes use this method and build on top of it to provide type safe and meaningful access to the data.

void setElement( const whichElement, ColumnType *newValue )

Purpose
Sets an element in the data. This method is called by other methods within this class or derived classes. The assumption is that validity checking will have been performed before this method is called.

void proxyIsDead(void)

int midasTableHandle
Purpose
Informs this object that its proxy object has been deleted. This allows it to make sure there are no dangling pointers.

int midasColumnNum
TEMPORARY MEMBER DATA - should be private but that would mean having to add extra methods. As it is a temporary solution I will make it protected to minimise changes in the future. Keep a track of the column data on disk. This class will only access the header information though.

TEMPORARY MEMBER DATA - shoudl be private but that would mean having to add extra methods. The number of the column in the midas implementation of the table

void setNull(ColumnType *newValue)

Purpose
sets the representation of the null value

ColumnType* getNull(void)

RWString name
Returns the internal rep. of the null value. This may need to be cast, or copied before it is in a form suitable for returning to the user.

int numRows
A name for the column. This should be unique in the Table.

DfcColumnImplementation <ColumnType> * implementation
The number of rows in this column

DfcKeywordStructure keywords
The actual data contained in the Column. This is seperated out to allow multiple different implementations of the Column. Also, it allows just the information about the Column to be loaded with load-on-demand of the data portion (but not in the midas implementation).

ColumnType* nullValue
Keywords attached to only this Column

DFC_BOOL selected
A representation for the null value for the column

DfcColumn* proxy
Is this Column currently selected or not?

DfcMidasConfiguration midasEnvironment
Store a copy of the proxy in this object

temporary member data while the implementation is being performed by MIDAS. This is a singleton which does bits and pieces liek sets up the midas environment, causes errors to be reported rather than to abort the program etc.


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de