• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/home/pascal/depot/filedata/src/parasolleader.h

00001 /***************************************************************************
00002  *   Copyright (C) 2005 by Nicolas PASCAL   *
00003  *   nicolas.pascal@icare.univ-lille1.fr   *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  *                                                                         *
00010  *   This program is distributed in the hope that it will be useful,       *
00011  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00012  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00013  *   GNU General Public License for more details.                          *
00014  *                                                                         *
00015  *   You should have received a copy of the GNU General Public License     *
00016  *   along with this program; if not, write to the                         *
00017  *   Free Software Foundation, Inc.,                                       *
00018  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
00019  ***************************************************************************/
00020 #ifndef PARASOLLEADER_H
00021 #define PARASOLLEADER_H
00022 
00023 #define PARASOLLEADER_TEST 0
00024 
00025 #include "parasolfilereader.h"
00026 
00027 #include <string>
00028 using namespace std;
00029 
00037 class PARASOLLeader : public PARASOLFileReader{
00038     friend class PARASOLFileData;
00039 public:
00040     LeaderFileDescriptorRecord *leader_file_descriptor;
00041 protected:
00042     string filename;
00043     PARASOLLeaderFormat *leader_file_format;
00044 
00045     // record storage classes
00046     HeaderRecord *header;
00047     SpatioTemporalCharacteristicsRecord *spatio_temp_char;
00048     InstrumentSettingParametersRecord *instrument_setting_param;
00049     TechnologicalParametersRecord *techno_param;
00050     DataProcessingParametersRecord *data_processing_param;
00051     ScalingFactorsRecord *scaling_factors;
00052     AnnotationsRecord *annotations;
00053 
00058     virtual const PARASOLFileFormat* get_leader_file_format(){
00059       return leader_file_format;
00060     };
00065     const bool is_record_loaded(const Record &rec);
00070     void free_record(const Record &rec);
00074     void free_records();
00080     PARASOLFileRecord* init_record(const Record &rec);
00087     const int get_record_offset(const Record &rec);
00098     const int get_entry_offset( const Record rec, const int entry_idx, const int group_idx=-1, const int subgroup_index=-1, const int val_index=-1);
00107 //     const int get_entry_offset( const Record rec, const int entry_idx, const vector <int>& i_val);
00115 //     const int get_entry_group_size(const Record rec, const int entry_idx);
00122 //     const int get_entry_group_nb_val(const Record rec, const int entry_idx) const;
00129     vector <EntryBlock> get_entry_block (const Record rec, const int entry_idx) const;
00135     const RecordFormat* get_record_format(const Record &rec);
00141     PARASOLFileRecord* get_record(const Record &rec);
00142 public:
00143     PARASOLLeader( const string leader_filename ="");
00144     virtual ~PARASOLLeader();
00148     void print_leader_file_descriptor();
00152     void print_spatio_temp_char();
00156     void print_header();
00160     void print_instr_setting_param();
00164     void print_scaling_factors();
00168     void print_techno_param();
00169 };
00170 
00171 #endif

Generated on Thu Feb 14 2013 17:59:03 for filedata.kdevelop by  doxygen 1.7.1