RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 > Class Template Reference

Parameterizes RDBColumn interface for many data types. More...

#include <RDBColumnTmplt.h>

Inheritance diagram for RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >:

Inheritance graph
[legend]
Collaboration diagram for RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >:

Collaboration graph
[legend]

List of all members.

Public Member Functions

Constructing, destructing, and initializing RDB columns.
 RDBColumnTmplt (const string &name="", const string &def="") throw ( RDBErr )
 Assigns name and definition.
 RDBColumnTmplt (const RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 > &rdbcolumntmplt)
 Copies RDBColumnTmplt object.
 ~RDBColumnTmplt (void)
 Deletes resources allocated by RDBColumnTmplt object.
RDBColumnoperator= (const RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 > &rdbcolumntmplt)
 Copies RDBColumnTmplt object.
virtual RDBColumnoperator= (const Tmplt0 &data) throw ( RDBErr )
 Assigns data to RDBColumn object's _data member, converting as necessary.
virtual RDBColumnoperator= (const Tmplt1 &data) throw ( RDBErr )
 Assigns data to RDBColumn object's _data member, converting as necessary.
virtual RDBColumnoperator= (const Tmplt2 &data) throw ( RDBErr )
 Assigns data to RDBColumn object's _data member, converting as necessary.
Auto-indexing control methods.
virtual void advanceIdx (void)
 Increments index to the RDBColumn's data elements.
virtual void rewind (void)
 Rewinds index to the RDBColumn's data elements.
Group information ("break" column) methods.
virtual void setGroup (bool group)
virtual void setGroupValue (void)
 Sets the group value to the current data value.
virtual int newGroup (void)
 Returns the group status of this column object.
Data member initializers.
virtual bool setData (const Tmplt0 &data) throw ( RDBErr )
 Sets the data value, converting as necessary.
virtual bool setData (const Tmplt1 &data) throw ( RDBErr )
 Sets the data value, converting as necessary.
virtual bool setData (const Tmplt2 &data) throw ( RDBErr )
 Sets the data value, converting as necessary.
Methods to map RDBColumn's data to user-supplied memory.
virtual void mapData (Tmplt0 data[], const size_t nelems) throw ( RDBErr )
 Maps data to user-supplied memory.
Data member accessors.
void * getData (void)
 Returns a pointer to the current data element.
virtual bool getData (Tmplt0 &data) throw ( RDBErr )
 Returns the value of the current data element, converting if necessary.
virtual bool getData (Tmplt1 &data) throw ( RDBErr )
 Returns the value of the current data element, converting if necessary.
virtual bool getData (Tmplt2 &data) throw ( RDBErr )
 Returns the value of the current data element, converting if necessary.
virtual double getDataDouble (void) throw ( RDBErr )
 Returns the value of the current data element, converting if necessary.
virtual long getDataLong (void) throw ( RDBErr )
 Returns the value of the current data element, converting if necessary.
virtual string getDataString (void) throw ( RDBErr )
 Returns the value of the current data element, converting if necessary.

Protected Member Functions

virtual istream & read (istream &is) throw ( RDBErr )
 Called by the stream insertion operator.
virtual ostream & write (ostream &os) const
 Called by the stream extraction operator.
void cleanup (void)
 Deletes resources allocated by RDBColumnTmplt object.

Protected Attributes

Tmplt0 * _data
 Pointer to the data managed by object.
size_t _idx
 Index into the data.
size_t _nelems
 Number of elements of data.
bool _mine
 Indicates that RDBColumnTmplt is responsible for deallocating the data.
Tmplt0 _groupvalue
 Current group value.


Detailed Description

template<class Tmplt0, class Tmplt1, class Tmplt2>
class RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >

Parameterizes RDBColumn interface for many data types.

Definition at line 38 of file RDBColumnTmplt.h.


Constructor & Destructor Documentation

template<class Tmplt0, class Tmplt1, class Tmplt2>
RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::RDBColumnTmplt ( const string &  name = "",
const string &  def = "" 
) throw ( RDBErr ) [inline]

Assigns name and definition.

Parameters:
name the column name.
def the column definition.
Allocates space for a single data element of type Tmplt1.

Definition at line 37 of file RDBColumnTmplt.cc.

template<class Tmplt0, class Tmplt1, class Tmplt2>
RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::RDBColumnTmplt ( const RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 > &  rdbcolumntmplt  )  [inline]

Copies RDBColumnTmplt object.

Parameters:
rdbcolumntmplt col the RDBColumn object to copy.
Makes a shallow copy of the argument. The two RDBColumn objects share data elements.

Definition at line 58 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_mine, and RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_nelems.

template<class Tmplt0, class Tmplt1, class Tmplt2>
RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::~RDBColumnTmplt ( void   )  [inline]

Deletes resources allocated by RDBColumnTmplt object.

Responsible for freeing data element memory allocated by the RDBColumn object.

Definition at line 76 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::cleanup().


Member Function Documentation

template<class Tmplt0, class Tmplt1, class Tmplt2>
RDBColumn & RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::operator= ( const RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 > &  col  )  [inline]

template<class Tmplt0, class Tmplt1, class Tmplt2>
RDBColumn & RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::operator= ( const Tmplt0 &  data  )  throw ( RDBErr ) [inline, virtual]

Assigns data to RDBColumn object's _data member, converting as necessary.

Parameters:
data Assigns the value to the current RDBColumn data element.

Definition at line 124 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::convert().

template<class Tmplt0, class Tmplt1, class Tmplt2>
RDBColumn & RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::operator= ( const Tmplt1 &  data  )  throw ( RDBErr ) [inline, virtual]

Assigns data to RDBColumn object's _data member, converting as necessary.

Parameters:
data 
Exceptions:
RDBErr error if the user attempts to convert non-numeric string data to a numeric column.
RDBErr error if the user attempts to convert string data representing a floating point number to an integer column.
Assigns the value to the current RDBColumn data element.

Definition at line 155 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::convert().

template<class Tmplt0, class Tmplt1, class Tmplt2>
RDBColumn & RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::operator= ( const Tmplt2 &  data  )  throw ( RDBErr ) [inline, virtual]

Assigns data to RDBColumn object's _data member, converting as necessary.

Parameters:
data 
Exceptions:
RDBErr error if the user attempts to convert non-numeric string data to a numeric column.
RDBErr error if the user attempts to convert string data representing a floating point number to an integer column.
Assigns the value to the current RDBColumn data element.

Definition at line 186 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::convert().

template<class Tmplt0, class Tmplt1, class Tmplt2>
void RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::advanceIdx ( void   )  [inline, virtual]

Increments index to the RDBColumn's data elements.

Advances the automatic index for the data elements by one.

Implements RDBColumn.

Definition at line 212 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_nelems.

Referenced by RDB::advanceIdx().

template<class Tmplt0, class Tmplt1, class Tmplt2>
void RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::rewind ( void   )  [inline, virtual]

Rewinds index to the RDBColumn's data elements.

Rewinds the automatic index for the data elements to the first element.

Implements RDBColumn.

Definition at line 228 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx.

template<class Tmplt0, class Tmplt1, class Tmplt2>
void RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::setGroup ( bool  group  )  [inline, virtual]

template<class Tmplt0, class Tmplt1, class Tmplt2>
void RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::setGroupValue ( void   )  [inline, virtual]

Sets the group value to the current data value.

Sets the group for this object to the current data element.

Implements RDBColumn.

Definition at line 268 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumn::_group, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_groupvalue, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_nelems.

template<class Tmplt0, class Tmplt1, class Tmplt2>
int RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::newGroup ( void   )  [inline, virtual]

template<class Tmplt0, class Tmplt1, class Tmplt2>
bool RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::setData ( const Tmplt0 &  data  )  throw ( RDBErr ) [inline, virtual]

Sets the data value, converting as necessary.

Parameters:
data 
Returns:
True upon successful conversion, false otherwise.
Assigns the value to the current RDBColumn data element.

Definition at line 343 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumn::_errno, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::convert().

Referenced by RDB::setData().

template<class Tmplt0, class Tmplt1, class Tmplt2>
bool RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::setData ( const Tmplt1 &  data  )  throw ( RDBErr ) [inline, virtual]

Sets the data value, converting as necessary.

Parameters:
data 
Exceptions:
RDBErr error if the user attempts to convert non-numeric string data to a numeric column.
RDBErr error if the user attempts to convert string data representing a floating point number to an integer column.
Returns:
True upon successful conversion, false otherwise.
Assigns the value to the current RDBColumn data element.

Definition at line 376 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumn::_errno, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::convert().

template<class Tmplt0, class Tmplt1, class Tmplt2>
bool RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::setData ( const Tmplt2 &  data  )  throw ( RDBErr ) [inline, virtual]

Sets the data value, converting as necessary.

Parameters:
data 
Exceptions:
RDBErr error if the user attempts to convert non-numeric string data to a numeric column.
RDBErr error if the user attempts to convert string data representing a floating point number to an integer column.
Returns:
True upon successful conversion, false otherwise.
Assigns the value to the current RDBColumn data element.

Definition at line 409 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumn::_errno, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::convert().

template<class Tmplt0, class Tmplt1, class Tmplt2>
void RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::mapData ( Tmplt0  data[],
const size_t  nelems 
) throw ( RDBErr ) [inline, virtual]

Maps data to user-supplied memory.

Parameters:
data pointer to a data element of type Tmplt0.
nelems number of data elements in the array pointed by data.
This method associates user allocated memory pointed to by data with this RDBColumn object. The used is responsible for freeing the memory pointed to by data after the RDBColumn is destroyed.

Definition at line 440 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumn::_group, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_mine, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_nelems, and RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::cleanup().

Referenced by RDB::mapData().

template<class Tmplt0, class Tmplt1, class Tmplt2>
void * RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::getData ( void   )  [inline, virtual]

Returns a pointer to the current data element.

Returns:
Pointer to the current data element.
This method returns a pointer to the current data element. Modifications to the data returned are evident within this object.

Implements RDBColumn.

Definition at line 466 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, and RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx.

template<class Tmplt0, class Tmplt1, class Tmplt2>
bool RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::getData ( Tmplt0 &  data  )  throw ( RDBErr ) [inline, virtual]

Returns the value of the current data element, converting if necessary.

Parameters:
data assigned the value of the current data element in this object.
Returns:
True if the conversion was successful, false otherwise.
Assigns the value of the current RDBColumn data element to the arguement.

Definition at line 484 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumn::_errno, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::convert().

template<class Tmplt0, class Tmplt1, class Tmplt2>
bool RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::getData ( Tmplt1 &  data  )  throw ( RDBErr ) [inline, virtual]

Returns the value of the current data element, converting if necessary.

Parameters:
data assigned the value of the current data element in this object.
Exceptions:
RDBErr error if the user attempts to convert a string column with non-numeric data to a numeric arguemnt.
RDBErr error if the user attempts to convert a string column representing a floating point number to an integer argument.
Returns:
True if the conversion was successful, false otherwise.
Assigns the value of the current RDBColumn data element to the arguement.

Definition at line 517 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumn::_errno, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::convert().

template<class Tmplt0, class Tmplt1, class Tmplt2>
bool RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::getData ( Tmplt2 &  data  )  throw ( RDBErr ) [inline, virtual]

Returns the value of the current data element, converting if necessary.

Parameters:
data assigned the value of the current data element in this object.
Exceptions:
RDBErr error if the user attempts to convert a string column with non-numeric data to a numeric arguemnt.
RDBErr error if the user attempts to convert a string column representing a floating point number to an integer argument.
Returns:
True if the conversion was successful, false otherwise.
Assigns the value of the current RDBColumn data element to the arguement.

Definition at line 550 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumn::_errno, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::convert().

template<class Tmplt0, class Tmplt1, class Tmplt2>
double RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::getDataDouble ( void   )  throw ( RDBErr ) [inline, virtual]

Returns the value of the current data element, converting if necessary.

Exceptions:
RDBErr error if the user attempts to convert a string column with non-numeric data to a numeric arguemnt.
Returns:
The data element as a double.

Implements RDBColumn.

Definition at line 578 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::convert().

Referenced by RDB::getData(), and RDB::getDataDouble().

template<class Tmplt0, class Tmplt1, class Tmplt2>
long RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::getDataLong ( void   )  throw ( RDBErr ) [inline, virtual]

Returns the value of the current data element, converting if necessary.

Exceptions:
RDBErr error if the user attempts to convert a string column with non-numeric data to a numeric arguemnt.
RDBErr error if the user attempts to convert a string column representing a floating point number to an integer argument.
Returns:
The data element as a long.

Implements RDBColumn.

Definition at line 608 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::convert().

Referenced by RDB::getData(), and RDB::getDataLong().

template<class Tmplt0, class Tmplt1, class Tmplt2>
string RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::getDataString ( void   )  throw ( RDBErr ) [inline, virtual]

Returns the value of the current data element, converting if necessary.

Returns:
The data element as a string.

Implements RDBColumn.

Definition at line 635 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::convert().

Referenced by RDB::getData(), and RDB::getDataString().

template<class Tmplt0, class Tmplt1, class Tmplt2>
istream & RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::read ( istream &  is  )  throw ( RDBErr ) [inline, protected, virtual]

Called by the stream insertion operator.

Parameters:
is input stream.
Returns:
The input stream.
Called by the RDBColumn stream extraction operator.

Implements RDBColumn.

Definition at line 666 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::extract().

template<class Tmplt0, class Tmplt1, class Tmplt2>
ostream & RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::write ( ostream &  os  )  const [inline, protected, virtual]

Called by the stream extraction operator.

Parameters:
os output stream.
Returns:
The output stream.
Called by the RDBColumn stream insertion operator.

Implements RDBColumn.

Definition at line 696 of file RDBColumnTmplt.cc.

References RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data, RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx, and RDBColumn::insert().

template<class Tmplt0, class Tmplt1, class Tmplt2>
void RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::cleanup ( void   )  [inline, protected]


Member Data Documentation

template<class Tmplt0, class Tmplt1, class Tmplt2>
Tmplt0* RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_data [protected]

template<class Tmplt0, class Tmplt1, class Tmplt2>
size_t RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_idx [protected]

template<class Tmplt0, class Tmplt1, class Tmplt2>
size_t RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_nelems [protected]

template<class Tmplt0, class Tmplt1, class Tmplt2>
bool RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_mine [protected]

template<class Tmplt0, class Tmplt1, class Tmplt2>
Tmplt0 RDBColumnTmplt< Tmplt0, Tmplt1, Tmplt2 >::_groupvalue [protected]


The documentation for this class was generated from the following files:

Generated on Tue Sep 15 11:07:30 2009 for rdbxx by  doxygen 1.5.6