OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
ossimplugins::VolumeDir Class Reference

This class is able to read the volume directory file of the RadarSat file structure. More...

#include <VolumeDir.h>

Public Member Functions

 VolumeDir ()
 Constructor. More...
 
 ~VolumeDir ()
 Destructor. More...
 
 VolumeDir (const VolumeDir &rhs)
 Copy constructor. More...
 
VolumeDiroperator= (const VolumeDir &rhs)
 Copy operator. More...
 
void ClearRecords ()
 Removes all the previous records from the VolumeDir. More...
 
VolumeDescriptorRecordget_VolumeDescriptorRecord ()
 
SARLeaderFilePointerRecordget_SARLeaderFilePointerRecord ()
 
ImageOptionsFilePointerRecordget_ImageOptionsFilePointerRecord ()
 
SARTrailerFilePointerRecordget_SARTrailerFilePointerRecord ()
 
TextRecordget_TextRecord ()
 

Protected Attributes

std::map< int, RadarSatRecord * > _records
 

Static Protected Attributes

static const int VolumeDescriptorRecordID = 5
 
static const int SARLeaderFilePointerRecordID = 2
 
static const int ImageOptionsFilePointerRecordID = 3
 
static const int SARTrailerFilePointerRecordID = 4
 
static const int TextRecordID = 1
 

Friends

std::ostream & operator<< (std::ostream &os, const VolumeDir &data)
 This function writes the VolumeDir in a stream. More...
 
std::istream & operator>> (std::istream &is, VolumeDir &data)
 This function reads a VolumeDir from a stream. More...
 

Detailed Description

This class is able to read the volume directory file of the RadarSat file structure.

Author
CS, Mickaƫl Savinaud
Version
1.0
Date
25-02-2011

Definition at line 34 of file VolumeDir.h.

Constructor & Destructor Documentation

◆ VolumeDir() [1/2]

ossimplugins::VolumeDir::VolumeDir ( )

Constructor.

Definition at line 25 of file VolumeDir.cpp.

26 {
27 }

◆ ~VolumeDir()

ossimplugins::VolumeDir::~VolumeDir ( )

Destructor.

Definition at line 29 of file VolumeDir.cpp.

References ClearRecords().

30 {
31  ClearRecords();
32 }
void ClearRecords()
Removes all the previous records from the VolumeDir.
Definition: VolumeDir.cpp:104

◆ VolumeDir() [2/2]

ossimplugins::VolumeDir::VolumeDir ( const VolumeDir rhs)

Copy constructor.

Definition at line 81 of file VolumeDir.cpp.

References _records.

82 {
83  std::map<int, RadarSatRecord*>::const_iterator it = rhs._records.begin();
84  while(it != rhs._records.end())
85  {
86  _records[(*it).first] = (*it).second->Clone();
87  ++it;
88  }
89 }
std::map< int, RadarSatRecord * > _records
Definition: VolumeDir.h:79

Member Function Documentation

◆ ClearRecords()

void ossimplugins::VolumeDir::ClearRecords ( )

Removes all the previous records from the VolumeDir.

Definition at line 104 of file VolumeDir.cpp.

References _records.

Referenced by operator=(), ossimplugins::operator>>(), and ~VolumeDir().

105 {
106  std::map<int, RadarSatRecord*>::const_iterator it = _records.begin();
107  while(it != _records.end())
108  {
109  delete (*it).second;
110  ++it;
111  }
112  _records.clear();
113 }
std::map< int, RadarSatRecord * > _records
Definition: VolumeDir.h:79

◆ get_ImageOptionsFilePointerRecord()

ImageOptionsFilePointerRecord * ossimplugins::VolumeDir::get_ImageOptionsFilePointerRecord ( )

Definition at line 120 of file VolumeDir.cpp.

References _records, and ImageOptionsFilePointerRecordID.

121 {
123 }
FilePointerRecord ImageOptionsFilePointerRecord
std::map< int, RadarSatRecord * > _records
Definition: VolumeDir.h:79
static const int ImageOptionsFilePointerRecordID
Definition: VolumeDir.h:83

◆ get_SARLeaderFilePointerRecord()

SARLeaderFilePointerRecord * ossimplugins::VolumeDir::get_SARLeaderFilePointerRecord ( )

Definition at line 115 of file VolumeDir.cpp.

References _records, and SARLeaderFilePointerRecordID.

116 {
118 }
static const int SARLeaderFilePointerRecordID
Definition: VolumeDir.h:82
FilePointerRecord SARLeaderFilePointerRecord
std::map< int, RadarSatRecord * > _records
Definition: VolumeDir.h:79

◆ get_SARTrailerFilePointerRecord()

SARTrailerFilePointerRecord * ossimplugins::VolumeDir::get_SARTrailerFilePointerRecord ( )

Definition at line 125 of file VolumeDir.cpp.

References _records, and SARTrailerFilePointerRecordID.

126 {
128 }
std::map< int, RadarSatRecord * > _records
Definition: VolumeDir.h:79
static const int SARTrailerFilePointerRecordID
Definition: VolumeDir.h:84
FilePointerRecord SARTrailerFilePointerRecord

◆ get_TextRecord()

TextRecord * ossimplugins::VolumeDir::get_TextRecord ( )

Definition at line 130 of file VolumeDir.cpp.

References _records, and TextRecordID.

131 {
132  return (TextRecord*)_records[TextRecordID];
133 }
static const int TextRecordID
Definition: VolumeDir.h:85
std::map< int, RadarSatRecord * > _records
Definition: VolumeDir.h:79

◆ get_VolumeDescriptorRecord()

VolumeDescriptorRecord * ossimplugins::VolumeDir::get_VolumeDescriptorRecord ( )

Definition at line 135 of file VolumeDir.cpp.

References _records, and VolumeDescriptorRecordID.

136 {
137  return (VolumeDescriptorRecord*)_records[VolumeDescriptorRecordID];
138 }
std::map< int, RadarSatRecord * > _records
Definition: VolumeDir.h:79
static const int VolumeDescriptorRecordID
Definition: VolumeDir.h:81

◆ operator=()

VolumeDir & ossimplugins::VolumeDir::operator= ( const VolumeDir rhs)

Copy operator.

Definition at line 91 of file VolumeDir.cpp.

References _records, and ClearRecords().

92 {
93  ClearRecords();
94  std::map<int, RadarSatRecord*>::const_iterator it = rhs._records.begin();
95  while(it != rhs._records.end())
96  {
97  _records[(*it).first] = (*it).second->Clone();
98  ++it;
99  }
100 
101  return *this;
102 }
std::map< int, RadarSatRecord * > _records
Definition: VolumeDir.h:79
void ClearRecords()
Removes all the previous records from the VolumeDir.
Definition: VolumeDir.cpp:104

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const VolumeDir data 
)
friend

This function writes the VolumeDir in a stream.

Definition at line 34 of file VolumeDir.cpp.

35 {
36  std::map<int, RadarSatRecord*>::const_iterator it = data._records.begin();
37  while(it != data._records.end())
38  {
39  (*it).second->Write(os);
40  ++it;
41  }
42  return os;
43 
44 }

◆ operator>>

std::istream& operator>> ( std::istream &  is,
VolumeDir data 
)
friend

This function reads a VolumeDir from a stream.

Definition at line 46 of file VolumeDir.cpp.

47 {
48  VolumeDirFactory factory;
49 
50  data.ClearRecords();
51 
52  RadarSatRecordHeader header;
53  bool eof = false;
54  while(!eof)
55  {
56  is>>header;
57  if(is.eof())
58  {
59  eof = true;
60  }
61  else
62  {
63  RadarSatRecord* record = factory.Instanciate(header.get_rec_seq());
64  if (record != NULL)
65  {
66  record->Read(is);
67  data._records[header.get_rec_seq()] = record;
68  }
69  else
70  {
71  char* buff = new char[header.get_length()-12];
72  is.read(buff, header.get_length()-12);
73  delete[] buff;
74  }
75  }
76  }
77  return is;
78 }

Member Data Documentation

◆ _records

std::map<int, RadarSatRecord*> ossimplugins::VolumeDir::_records
protected

◆ ImageOptionsFilePointerRecordID

const int ossimplugins::VolumeDir::ImageOptionsFilePointerRecordID = 3
staticprotected

Definition at line 83 of file VolumeDir.h.

Referenced by get_ImageOptionsFilePointerRecord().

◆ SARLeaderFilePointerRecordID

const int ossimplugins::VolumeDir::SARLeaderFilePointerRecordID = 2
staticprotected

Definition at line 82 of file VolumeDir.h.

Referenced by get_SARLeaderFilePointerRecord().

◆ SARTrailerFilePointerRecordID

const int ossimplugins::VolumeDir::SARTrailerFilePointerRecordID = 4
staticprotected

Definition at line 84 of file VolumeDir.h.

Referenced by get_SARTrailerFilePointerRecord().

◆ TextRecordID

const int ossimplugins::VolumeDir::TextRecordID = 1
staticprotected

Definition at line 85 of file VolumeDir.h.

Referenced by get_TextRecord().

◆ VolumeDescriptorRecordID

const int ossimplugins::VolumeDir::VolumeDescriptorRecordID = 5
staticprotected

Definition at line 81 of file VolumeDir.h.

Referenced by get_VolumeDescriptorRecord().


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