PDS_JP2
|
00001 /* PDS_Data_Block 00002 00003 HiROC CVS ID: PDS_Data_Block.hh,v 1.9 2013/03/14 21:00:43 guym Exp 00004 00005 Copyright (C) 2006-2007 Arizona Board of Regents on behalf of the 00006 Planetary Image Research Laboratory, Lunar and Planetary Laboratory at 00007 the University of Arizona. 00008 00009 This program is free software; you can redistribute it and/or modify it 00010 under the terms of the GNU General Public License, version 2, as 00011 published by the Free Software Foundation. 00012 00013 This program is distributed in the hope that it will be useful, but 00014 WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 General Public License for more details. 00017 00018 You should have received a copy of the GNU General Public License along 00019 with this program; if not, write to the Free Software Foundation, Inc., 00020 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00021 */ 00022 00023 #ifndef _PDS_Data_Block_ 00024 #define _PDS_Data_Block_ 00025 00026 #include "PDS_Data.hh" 00027 00028 #include <string> 00029 #include <iosfwd> 00030 00031 00032 namespace UA 00033 { 00034 namespace HiRISE 00035 { 00054 class PDS_Data_Block 00055 : public PDS_Data 00056 { 00057 public: 00058 /*============================================================================== 00059 Constants: 00060 */ 00062 static const char* const 00063 ID; 00064 00066 static const char 00067 *BLOCK_WIDTH_PARAMETER_NAME; 00068 00070 static const char 00071 *BLOCK_HEIGHT_PARAMETER_NAME; 00072 00073 /*============================================================================== 00074 Constructors: 00075 */ 00078 PDS_Data_Block (); 00079 00089 PDS_Data_Block 00090 ( 00091 const idaeim::PVL::Aggregate& parameters, 00092 std::ios::off_type file_offset 00093 ); 00094 00104 PDS_Data_Block 00105 ( 00106 const idaeim::PVL::Aggregate& parameters, 00107 const std::string& filename 00108 ); 00109 00110 00111 /*============================================================================== 00112 Accessors: 00113 */ 00118 std::ios::off_type location () 00119 {return Location;} 00120 00125 unsigned long long size () 00126 {return Size;} 00127 00128 /*============================================================================== 00129 Data: 00130 */ 00131 protected: 00132 00134 std::ios::off_type 00135 Location; 00136 00138 unsigned long long 00139 Size; 00140 00153 virtual unsigned long long data_block_size (); 00154 00155 }; // class PDS_Data_Block 00156 00157 } // namespace HiRISE 00158 } // namespace UA 00159 #endif