HiRISE
 PDS_JP2

Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
PDS_Data_Block Class Reference

A PDS_Data_Block describes a binary data block in a PDS label. More...

#include <PDS_Data_Block.hh>

Inheritance diagram for PDS_Data_Block:
Inheritance graph
[legend]
Collaboration diagram for PDS_Data_Block:
Collaboration graph
[legend]

Public Member Functions

 PDS_Data_Block ()
 Constructs an empty PDS_Data_Block. More...
 
 PDS_Data_Block (const idaeim::PVL::Aggregate &parameters, std::ios::off_type file_offset)
 Constructs a PDS_Data_Block from its PDS label parameters and source file data location. More...
 
 PDS_Data_Block (const idaeim::PVL::Aggregate &parameters, const std::string &filename)
 Constructs a PDS_Data_Block from its PDS label parameters and detached source file. More...
 
std::ios::off_type location ()
 Get the offset location of the binary data block in the source file. More...
 
unsigned long long size ()
 Get the size of the data block. More...
 
- Public Member Functions inherited from PDS_Data
 PDS_Data ()
 Construct PDS_Data with no parameters. More...
 
 PDS_Data (const idaeim::PVL::Aggregate &parameters)
 Construct PDS_Data from a PVL Parameter Aggregate. More...
 
 PDS_Data (const idaeim::PVL::Aggregate &parameters, const std::string &detached)
 Construct PDS_Data from a PVL Parameter Aggregate. More...
 
 PDS_Data (const std::string &pathname)
 Construct PDS_Data from a named file. More...
 
PDS_Data_Block_Listdata_blocks (const char **excluded=NULL, const char **image_block_names=NULL)
 Get a list of all binary data blocks in the PDS data. More...
 
idaeim::PVL::Parameterfind_parameter (const std::string &pathname, bool case_sensitive=false, int skip=0, Parameter_Class_Selection parameter_class=ANY_PARAMETER) const
 Find a named Parameter. More...
 
virtual PDS_Dataparameters (const std::string &pathname)
 Set the parameters from a source file. More...
 
virtual PDS_Dataparameters (const idaeim::PVL::Aggregate &parameters)
 Set the parameters from a Parameter Aggregate. More...
 
idaeim::PVL::Parameterremove_parameter (const std::string &pathname, bool case_sensitive=false, int skip=0, Parameter_Class_Selection parameter_class=ANY_PARAMETER)
 Removes a named Parameter. More...
 
template<typename T >
bool parameter_value (const std::string &pathname, T &value, bool case_sensitive=false, int skip=0)
 Set the value of a named parameter. More...
 
double numeric_value (const std::string &pathname, bool case_sensitive=false, int skip=0) const
 Get the numeric value of a named parameter. More...
 
std::string string_value (const std::string &pathname, bool case_sensitive=false, int skip=0) const
 Get the string value of a named parameter. More...
 
- Public Member Functions inherited from Aggregate
Aggregateadd (const Parameter &parameter)
 
Aggregateadd (Parameter *parameter)
 
 Aggregate (const Aggregate &aggregate)
 
 Aggregate (Parser &parser, const std::string name="")
 
 Aggregate (const std::string name="", const idaeim::PVL::Parameter::Type type_code=Default_Subtype)
 
 Aggregate (const Parameter &parameter)
 
Depth_Iterator begin_depth ()
 
Aggregateclone () const
 
int compare (const Parameter &parameter) const
 
Aggregatecopy_in (const Aggregate &aggregate)
 
Depth_Iterator end_depth ()
 
void entering (Parameter *parameter)
 
Parameterfind (const std::string &pathname, bool case_sensitive=false, int skip=0, idaeim::PVL::Parameter::Type type=(Type)(ASSIGNMENT|AGGREGATE)) const
 
bool is (const Type type) const
 
bool is_Aggregate () const
 
bool is_Group () const
 
bool is_Object () const
 
Aggregatemove_in (Aggregate &aggregate)
 
Aggregateoperator= (const Parameter &parameter)
 
Aggregateoperator= (const Aggregate &parameter)
 
Aggregateoperator= (const Assignment &parameter)
 
Aggregateoperator= (const Value &value)
 
const Parameteroperator[] (unsigned int index) const
 
Parameteroperator[] (unsigned int index)
 
void read (std::istream &in=std::cin)
 
void read (Parser &parser)
 
Parameterremove (size_type index)
 
Parameterremove (Parameter *parameter)
 
Parameterremove (iterator position)
 
Parameterremove_depth (Parameter *parameter)
 
void removing (Parameter *parameter)
 
size_type total_size ()
 
Aggregatetype (const int type)
 
Type type () const
 
std::string type_name () const
 
Valuevalue () const
 
 ~Aggregate ()
 
- Public Member Functions inherited from Parameter
bool at_pathname (std::string pathname, bool case_sensitive, const Parameter *root=NULL) const
 
bool at_pathname (std::string pathname) const
 
bool at_pathname (std::string pathname, bool case_sensitive, const Parameter &root) const
 
std::string comment () const
 
Parametercomment (const std::string &comment)
 
bool has_children () const
 
Parameterindenting (const MODE_STATE state, const WHICH_MODE which=LOCAL_MODE_SET)
 
Parameterindenting (const bool enable)
 
MODE_STATE indenting (const WHICH_MODE which=RECURSIVE_MODE_SET) const
 
virtual bool is_Assignment () const
 
virtual bool is_Token () const
 
Parametermode_state (const MODE mode, const MODE_STATE state, const WHICH_MODE which=LOCAL_MODE_SET)
 
const MODE_STATEmode_state (const WHICH_MODE which=LOCAL_MODE_SET) const
 
MODE_STATE mode_state (const MODE mode, const WHICH_MODE which=RECURSIVE_MODE_SET) const
 
Parametermode_state (const MODE_STATE *const modes, const WHICH_MODE which=LOCAL_MODE_SET)
 
std::string name () const
 
Parametername (const std::string &name)
 
bool operator!= (const Parameter &parameter) const
 
bool operator< (const Parameter &parameter) const
 
bool operator<= (const Parameter &parameter) const
 
bool operator== (const Parameter &parameter) const
 
bool operator> (const Parameter &parameter) const
 
bool operator>= (const Parameter &parameter) const
 
 Parameter (const Parameter &parameter)
 
 Parameter (const std::string &name="")
 
Aggregateparent () const
 
std::string pathname (const Parameter *root=NULL) const
 
std::string pathname (const Parameter &root) const
 
std::string pathname_to (const Parameter *root=NULL) const
 
std::string pathname_to (const Parameter &root) const
 
std::ostream & print (std::ostream &out=std::cout) const
 
Aggregateroot () const
 
MODE_STATE verbatim_strings (const WHICH_MODE which=RECURSIVE_MODE_SET) const
 
Parameterverbatim_strings (const bool enable)
 
Parameterverbatim_strings (const MODE_STATE state, const WHICH_MODE which=LOCAL_MODE_SET)
 
unsigned int write (std::ostream &out=std::cout, int depth=0) const
 
virtual ~Parameter ()
 
- Public Member Functions inherited from Vectal< Parameter >
void assign (size_type number, const_reference value)
 
void assign (Iterator start, Iterator stop)
 
reference at (size_type index)
 
const_reference at (size_type index) const
 
reference back ()
 
const_reference back () const
 
Iterator begin ()
 
Const_Iterator begin () const
 
void clear ()
 
Iterator end ()
 
Const_Iterator end () const
 
void erase (size_type index)
 
iterator erase (iterator start, iterator stop)
 
iterator erase (iterator position)
 
reference front ()
 
const_reference front () const
 
iterator insert (iterator position, const_reference value)
 
void insert (size_type index, const_reference value)
 
void insert (iterator position, size_type number, const_reference value)
 
void insert (iterator position, InputIterator start, InputIterator stop)
 
Vectaloperator= (const Vectal< value_type > &vectal)
 
const_reference operator[] (size_type index) const
 
reference operator[] (size_type index)
 
pointer peek (const iterator &position)
 
pointer peek (const const_iterator &position) const
 
pointer peek_back ()
 
pointer peek_back () const
 
iterator poke (iterator position, pointer value_pointer)
 
void poke (size_type index, pointer value_pointer)
 
iterator poke (iterator position, const_iterator start, const_iterator stop)
 
void poke_back (pointer value_pointer)
 
void pop_back ()
 
iterator pull (iterator position)
 
iterator pull (iterator start, iterator stop)
 
pointer pull_back ()
 
pointer pull_out (size_type index)
 
pointer pull_out (iterator position)
 
void push_back (const_reference value)
 
Reverse_Iterator rbegin ()
 
Const_Reverse_Iterator rbegin () const
 
Const_Reverse_Iterator rend () const
 
Reverse_Iterator rend ()
 
pointer replace (iterator position, pointer value_pointer)
 
void resize (size_type new_size)
 
void resize (size_type new_size, const_reference value)
 
 Vectal (Iterator start, Iterator stop)
 
 Vectal (const Vectal &vectal)
 
 Vectal ()
 
 Vectal (size_type size, const_reference value)
 
Basevector_base ()
 
void wipe ()
 
virtual ~Vectal ()
 

Static Public Attributes

static const char *const ID
 Class identification. More...
 
static const char * BLOCK_WIDTH_PARAMETER_NAME = "ROW_BYTES"
 Name of the parameter specifying the binary block row width in bytes. More...
 
static const char * BLOCK_HEIGHT_PARAMETER_NAME = "ROWS"
 Name of the parameter specifying the binary block height in rows. More...
 
- Static Public Attributes inherited from PDS_Data
static const char *const ID
 Class identification name with source code version and date. More...
 
static const char * PDS_ID_PARAMETER_NAME = "PDS_VERSION_ID"
 Name of the parameter providing the PDS ID. More...
 
static const char * RECORD_TYPE_PARAMETER_NAME = "RECORD_TYPE"
 Name of the parameter specifying the type of label records. More...
 
static const char * BYTE_RECORD_TYPE = "UNDEFINED"
 The record type used to define byte count based records. More...
 
static const char * FIXED_LENGTH_RECORD_TYPE = "FIXED_LENGTH"
 The record type used to define fixed length records. More...
 
static const char * LABEL_RECORDS_PARAMETER_NAME = "LABEL_RECORDS"
 Name of the parameter specifying the number of records in the label. More...
 
static const char * RECORD_BYTES_PARAMETER_NAME = "RECORD_BYTES"
 Name of the parameter specifying the number of bytes per record. More...
 
static const char * FILE_RECORDS_PARAMETER_NAME = "FILE_RECORDS"
 Name of the parameter specifying the number of records in the file. More...
 
static const char * INTERCHANGE_FORMAT_PARAMETER_NAME = "INTERCHANGE_FORMAT"
 Name of the parameter indicating the data format. More...
 
static const char * IMAGE_DATA_BLOCK_NAME = "IMAGE"
 Name of the Image_Data_Block parameter group. More...
 
static const char * BYTES_UNITS = "BYTES"
 Units name for storage measured in bytes. More...
 
static const char RECORD_POINTER_PARAMETER_MARKER = '^'
 Record pointer parameter prefix. More...
 
- Static Public Attributes inherited from Parameter
static const bool DEFAULT_CASE_SENSITIVITY
 
static const char DEFAULT_PATHNAME_DELIMITER
 
static const char *const ID
 
- Static Public Attributes inherited from Vectal_ID
static const char *const ID
 

Protected Member Functions

virtual unsigned long long data_block_size ()
 Calculate the size of the binary data block. More...
 
- Protected Member Functions inherited from Vectal< Parameter >
virtual void entering (pointer value_pointer)
 
virtual void removing (pointer value_pointer)
 

Protected Attributes

std::ios::off_type Location
 Offset location of the data block in the source file. More...
 
unsigned long long Size
 Size of the data block in bytes. More...
 
- Protected Attributes inherited from Parameter
std::string Comment
 
MODE_STATE Modes [TOTAL_LOCAL_MODES]
 
std::string Name
 
AggregateParent
 

Additional Inherited Members

- Public Types inherited from PDS_Data
enum  Parameter_Class_Selection {
  AGGREGATE_PARAMETER = -1 ,
  ANY_PARAMETER = 0 ,
  ASSIGNMENT_PARAMETER = 1
}
 Selects the class of parameter to find. More...
 
typedef std::vector< PDS_Data_Block * > PDS_Data_Block_List
 A vector of PDS_Data_Block object pointers. More...
 
- Public Types inherited from Aggregate
typedef Parameter_List::const_iterator const_iterator
 
typedef Depth_Iterator depth_iterator
 
typedef Parameter_List::iterator iterator
 
typedef Vectal< ParameterParameter_List
 
- Public Types inherited from Parameter
enum  MODE
 
enum  MODE_STATE
 
enum  Type
 
enum  WHICH_MODE
 
typedef Integer Default_Value
 
- Public Types inherited from Vectal< Parameter >
typedef Base::allocator_type allocator_type
 
typedef std::vector< Parameter * > Base
 
typedef Base::const_iterator Base_const_iterator
 
typedef Base::const_reverse_iterator Base_const_reverse_iterator
 
typedef Base::iterator Base_iterator
 
typedef Base::reverse_iterator Base_reverse_iterator
 
typedef Const_Iterator const_iterator
 
typedef const pointer const_pointer
 
typedef const value_typeconst_reference
 
typedef Const_Reverse_Iterator const_reverse_iterator
 
typedef const value_type const_value_type
 
typedef Base::difference_type difference_type
 
typedef Iterator iterator
 
typedef value_typepointer
 
typedef value_typereference
 
typedef Reverse_Iterator reverse_iterator
 
typedef Base::size_type size_type
 
typedef Parameter value_type
 
- Static Public Member Functions inherited from PDS_Data
static Image_Data_Blockimage_data (PDS_Data_Block_List *data_block_list)
 Get the Image_Data_Block from a PDS_Data::PDS_Data_Block_List. More...
 
- Static Public Member Functions inherited from Aggregate
static Type default_type ()
 
static Type default_type (const int type)
 
- Static Public Member Functions inherited from Parameter
static bool case_sensitive ()
 
static bool case_sensitive (bool enable)
 
static char path_delimiter (const char delimiter)
 
static char path_delimiter ()
 
static std::string type_name (const Type type)
 
- Public Attributes inherited from Aggregate
 CASE_INSENSITIVE
 
 CASE_SENSITIVE
 
- Public Attributes inherited from Parameter
 Verbatim_Strings
 
 Indenting
 
 TOTAL_LOCAL_MODES
 
 MODE_FALSE
 
 MODE_TRUE
 
 MODE_INHERITED
 
 ASSIGNMENT
 
 TOKEN
 
 AGGREGATE
 
 GROUP
 
 OBJECT
 
 END
 
 END_GROUP
 
 END_OBJECT
 
 LOCAL_MODE_SET
 
 DEFAULT_MODE_SET
 
 RECURSIVE_MODE_SET
 
- Static Protected Attributes inherited from Parameter
static bool Case_Sensitive
 
static MODE_STATE DEFAULT_MODES [TOTAL_LOCAL_MODES]
 
static char Path_Delimiter
 

Detailed Description

A PDS_Data_Block describes a binary data block in a PDS label.

A PDS_Data_Block is the PDS_Data parameters that describes a binary data block along with the location and size of the binary data in the source file. A binary data block is located in a PDS label by a data block record pointer parameter. A record pointer parameter has a name that begins with the PDS_Data::RECORD_POINTER_PARAMETER_MARKER character. The value of a pointer parameter is the record number (offset + 1) where the binary data is located in the file. A Parameter Aggregate with the same name, but without the record pointer marker, contains the parameters that desrcribe the data block.

Author
Bradford Castalia, Drew Davidson and Ben Pearson, UA/HiROC
Version
1.9
See also
PDS_Data

Constructor & Destructor Documentation

◆ PDS_Data_Block() [1/3]

Constructs an empty PDS_Data_Block.

◆ PDS_Data_Block() [2/3]

PDS_Data_Block ( const idaeim::PVL::Aggregate parameters,
std::ios::off_type  file_offset 
)

Constructs a PDS_Data_Block from its PDS label parameters and source file data location.

N.B.: The Parameter Aggregate describing the data block is copied.

Parameters
parametersParameter Aggregate describing the data block
file_offsetData block offset location in the source file.

References PDS_Data_Block::data_block_size(), Parameter::name(), PDS_Data::parameters(), and PDS_Data_Block::Size.

◆ PDS_Data_Block() [3/3]

PDS_Data_Block ( const idaeim::PVL::Aggregate parameters,
const std::string &  filename 
)

Constructs a PDS_Data_Block from its PDS label parameters and detached source file.

N.B.: The Parameter Aggregate describing the data block is copied.

Parameters
parametersParameter Aggregate describing the data block
file_offsetData block offset location in the source file.

References Parameter::name(), PDS_Data::parameters(), and PDS_Data_Block::Size.

Member Function Documentation

◆ location()

std::ios::off_type location ( )
inline

Get the offset location of the binary data block in the source file.

Returns
The file offset location of the binary data block.

References PDS_Data_Block::Location.

Referenced by main().

◆ size()

unsigned long long size ( )
inline

Get the size of the data block.

Returns
The size of the data block, in bytes.

References PDS_Data_Block::Size.

Referenced by main().

◆ data_block_size()

unsigned long long data_block_size ( )
protectedvirtual

Calculate the size of the binary data block.

The value of the BLOCK_WIDTH_PARAMETER_NAME parameter is multiplied by the value of the BLOCK_HEIGHT_PARAMETER_NAME parameter. If either of these parameters are not found in the data block description the result will be zero.

N.B.: This method may be overriden by subclasses that need to specialize how the data block size is determined.

Returns
The size (bytes) of the binary data block in the source file.

Reimplemented in Image_Data_Block.

References PDS_Data_Block::BLOCK_HEIGHT_PARAMETER_NAME, PDS_Data_Block::BLOCK_WIDTH_PARAMETER_NAME, PDS_Data::find_parameter(), and Parameter::value().

Referenced by PDS_Data_Block::PDS_Data_Block().

Member Data Documentation

◆ ID

const char *const ID
static
Initial value:
=
"UA::HiRISE::PDS_Data_Block (1.12 2013/03/18 04:59:11)"

Class identification.

◆ BLOCK_WIDTH_PARAMETER_NAME

const char * BLOCK_WIDTH_PARAMETER_NAME = "ROW_BYTES"
static

Name of the parameter specifying the binary block row width in bytes.

Referenced by PDS_Data_Block::data_block_size().

◆ BLOCK_HEIGHT_PARAMETER_NAME

const char * BLOCK_HEIGHT_PARAMETER_NAME = "ROWS"
static

Name of the parameter specifying the binary block height in rows.

Referenced by PDS_Data_Block::data_block_size().

◆ Location

std::ios::off_type Location
protected

Offset location of the data block in the source file.

Referenced by PDS_Data_Block::location().

◆ Size

unsigned long long Size
protected

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