Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

seHelperDataTable.h

Go to the documentation of this file.
00001 /*
00002  *  Copyright (c) 2003 Accent Geographic. All rights reserved.
00003  *  See the license file for licensing information.
00004  *  Created 2003/05/30
00005  */
00006 

00008 

00010 
00011 // $Id: seHelperDataTable.h,v 1.10 2004/06/09 21:51:22 wmacchi Exp $
00012 
00013 #ifndef _seHelperDataTable_h
00014 #define _seHelperDataTable_h
00015 
00021 #include "seDRMDataTable.h"
00022 
00023 namespace sedris {
00024 
00025 
00126 class EXPORT_DLL seHelperDataTable
00127 {
00128 public:
00129 
00131     seHelperDataTable();
00132 
00134     seHelperDataTable( const seHelperDataTable& other );
00135 
00137     seHelperDataTable& operator=( const seHelperDataTable& other );
00138 
00140     virtual ~seHelperDataTable();
00141 
00165     void init( seDRMDataTable &data_table, SE_Integer_Positive tpd_index,
00166                         const SE_Data_Table_Sub_Extent *extents = NULL );
00167 
00173     const SE_Data_Table_Sub_Extent &getFullExtents();
00174 
00181     const SE_Data_Table_Sub_Extent &getHelperExtents();
00182 
00187     SE_Integer_Unsigned getCellCount();
00188 
00193     const SE_Table_Property_Description_Fields &getTPDFields();
00194 
00206     const SE_Data_Table_Data &getDTData();
00207     
00221     SE_Integer_Unsigned getCellIndex( SE_Short_Integer_Unsigned axes_count,
00222                                     SE_Integer_Unsigned axis_indices[] );
00223 
00233     void getDataValue( SE_Integer_Unsigned cell_index, SE_Single_Value &val );
00234 
00243     static void getDataValue( const SE_Data_Table_Data &dtd,
00244                         SE_Integer_Unsigned cell_index, SE_Single_Value &val );
00245 
00247     static SE_Integer_Unsigned getValueTypeSize(
00248                                         SE_Data_Table_Data_Value_Type type );
00249 
00257     static SE_Integer_Unsigned getTPDCount( seDRMDataTable &data_table );
00258 
00265     static SE_Integer_Unsigned getCellCount(
00266                                         SE_Data_Table_Sub_Extent &extents );
00267 
00271     static void allocateExtents( seDRMDataTable &data_table,
00272                                     SE_Data_Table_Sub_Extent &extents );
00273 
00275     static void deallocateExtents( SE_Data_Table_Sub_Extent &extents );
00276 
00285     static void allocateDataTableData( SE_Data_Table_Data &dtd );
00286 
00288     static void deallocateDataTableData( SE_Data_Table_Data &dtd );
00289 
00295     static SE_Single_Value_Type mapDTDVTtoSVT(
00296                                         SE_Data_Table_Data_Value_Type type );
00297 protected:
00298 
00300     void reset();
00301 
00303     void copyFrom( const seHelperDataTable& other );
00304 
00306     void checkValid()
00307     {
00308         if (!_full_extents.axes_count)
00309             SE_ThrowEx("seHelperDataTable - helper is not initialized");
00310     }
00311 
00312     SE_Data_Table_Sub_Extent _extents; 
00313     SE_Data_Table_Sub_Extent _full_extents; 
00314     SE_Table_Property_Description_Fields _tpd_flds; 
00315     SE_Data_Table_Data _dt_data; 
00316     SE_Integer_Unsigned *_axis_size; 
00317 };
00318 
00319 
00322 } // namespace sedris
00323 
00324 #endif // _seHelperDataTable_h

SEDRIS Transmittal Access C++ API 4.0.0 beta - 14 Jul 2004
Copyright © 2004 SEDRIS Docs by Doxygen 1.3.2