OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Private Attributes | Friends | List of all members
ossimRpfReplaceUpdateSectionSubheader Class Reference

RPF replace/update section subheader record. More...

#include <ossimRpfReplaceUpdateSectionSubheader.h>

Inheritance diagram for ossimRpfReplaceUpdateSectionSubheader:
ossimReferenced

Public Member Functions

 ossimRpfReplaceUpdateSectionSubheader ()
 default constructor More...
 
 ossimRpfReplaceUpdateSectionSubheader (const ossimRpfReplaceUpdateSectionSubheader &obj)
 copy constructor More...
 
const ossimRpfReplaceUpdateSectionSubheaderoperator= (const ossimRpfReplaceUpdateSectionSubheader &rhs)
 assignment operator More...
 
virtual ~ossimRpfReplaceUpdateSectionSubheader ()
 virtual destructor More...
 
ossimErrorCode parseStream (std::istream &in, ossimByteOrder byteOrder)
 Method to parse the record. More...
 
void writeStream (std::ostream &out)
 Write method. More...
 
std::ostream & print (std::ostream &out) const
 print method that outputs a key/value type format adding prefix to keys. More...
 
ossim_uint32 getOffset () const
 
ossim_uint16 getNumberOfRecords () const
 
ossim_uint16 getRecordLength () const
 
void setNumberOfRecords (ossim_uint16 count)
 Sets number of records. More...
 
void setRecordLength (ossim_uint16 length)
 
void clearFields ()
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 

Private Attributes

ossim_uint32 m_tableOffset
 
ossim_uint16 m_numberOfRecords
 
ossim_uint16 m_recordLength
 

Friends

std::ostream & operator<< (std::ostream &out, const ossimRpfReplaceUpdateSectionSubheader &data)
 Convenience output operator. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 

Detailed Description

RPF replace/update section subheader record.

See MIL-STD-2411 for detailed information.

Definition at line 27 of file ossimRpfReplaceUpdateSectionSubheader.h.

Constructor & Destructor Documentation

◆ ossimRpfReplaceUpdateSectionSubheader() [1/2]

ossimRpfReplaceUpdateSectionSubheader::ossimRpfReplaceUpdateSectionSubheader ( )

◆ ossimRpfReplaceUpdateSectionSubheader() [2/2]

ossimRpfReplaceUpdateSectionSubheader::ossimRpfReplaceUpdateSectionSubheader ( const ossimRpfReplaceUpdateSectionSubheader obj)

◆ ~ossimRpfReplaceUpdateSectionSubheader()

ossimRpfReplaceUpdateSectionSubheader::~ossimRpfReplaceUpdateSectionSubheader ( )
virtual

virtual destructor

Definition at line 62 of file ossimRpfReplaceUpdateSectionSubheader.cpp.

63 {
64 }

Member Function Documentation

◆ clearFields()

void ossimRpfReplaceUpdateSectionSubheader::clearFields ( )

◆ getNumberOfRecords()

ossim_uint16 ossimRpfReplaceUpdateSectionSubheader::getNumberOfRecords ( ) const
Returns
Number of records.

Definition at line 136 of file ossimRpfReplaceUpdateSectionSubheader.cpp.

References m_numberOfRecords.

Referenced by ossimRpfFrame::populateReplaceUpdateTable().

◆ getOffset()

ossim_uint32 ossimRpfReplaceUpdateSectionSubheader::getOffset ( ) const
Returns
Offset to first record.

Definition at line 131 of file ossimRpfReplaceUpdateSectionSubheader.cpp.

References m_tableOffset.

◆ getRecordLength()

ossim_uint16 ossimRpfReplaceUpdateSectionSubheader::getRecordLength ( ) const
Returns
Length of one record.

Definition at line 141 of file ossimRpfReplaceUpdateSectionSubheader.cpp.

References m_recordLength.

◆ operator=()

const ossimRpfReplaceUpdateSectionSubheader & ossimRpfReplaceUpdateSectionSubheader::operator= ( const ossimRpfReplaceUpdateSectionSubheader rhs)

◆ parseStream()

ossimErrorCode ossimRpfReplaceUpdateSectionSubheader::parseStream ( std::istream &  in,
ossimByteOrder  byteOrder 
)

Method to parse the record.

Parameters
inStream sitting at record.
byteOrderByte order of system.

Definition at line 66 of file ossimRpfReplaceUpdateSectionSubheader.cpp.

References ossim::byteOrder(), m_numberOfRecords, m_recordLength, m_tableOffset, ossimErrorCodes::OSSIM_ERROR, and ossimEndian::swap().

Referenced by ossimRpfFrame::populateReplaceUpdateTable().

68 {
69  if(in)
70  {
71  in.read((char*)&m_tableOffset, 4);
72  in.read((char*)&m_numberOfRecords, 2);
73  in.read((char*)&m_recordLength, 2);
74 
75  if( ossim::byteOrder() != byteOrder )
76  {
77  ossimEndian anEndian;
78  anEndian.swap(m_tableOffset);
79  anEndian.swap(m_numberOfRecords);
80  anEndian.swap(m_recordLength);
81  }
82  }
83  else
84  {
86  }
87 
88  if ( traceDebug() )
89  {
91  }
92 
94 }
static const ossimErrorCode OSSIM_OK
OSSIM_DLL ossimByteOrder byteOrder()
Definition: ossimCommon.cpp:54
static const ossimErrorCode OSSIM_ERROR
std::ostream & print(std::ostream &out) const
print method that outputs a key/value type format adding prefix to keys.
void swap(ossim_sint8 &)
Definition: ossimEndian.h:26
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ print()

std::ostream & ossimRpfReplaceUpdateSectionSubheader::print ( std::ostream &  out) const

print method that outputs a key/value type format adding prefix to keys.

Parameters
outString to output to.
prefixThis will be prepended to key. e.g. Where prefix = "nitf." and key is "file_name" key becomes: "nitf.file_name:"
Returns
output stream.

Definition at line 120 of file ossimRpfReplaceUpdateSectionSubheader.cpp.

References m_numberOfRecords, m_recordLength, and m_tableOffset.

Referenced by operator<<().

121 {
122  out << "ossimRpfReplaceUpdateSectionSubheader DEBUG:"
123  << "\ntable_offset: " << m_tableOffset
124  << "\nnumber_of_records: " << m_numberOfRecords
125  << "\nrecord_length: " << m_recordLength
126  << std::endl;
127 
128  return out;
129 }

◆ setNumberOfRecords()

void ossimRpfReplaceUpdateSectionSubheader::setNumberOfRecords ( ossim_uint16  count)

Sets number of records.

Parameters
count

Definition at line 146 of file ossimRpfReplaceUpdateSectionSubheader.cpp.

References m_numberOfRecords.

◆ setRecordLength()

void ossimRpfReplaceUpdateSectionSubheader::setRecordLength ( ossim_uint16  length)

Definition at line 151 of file ossimRpfReplaceUpdateSectionSubheader.cpp.

References m_recordLength.

◆ writeStream()

void ossimRpfReplaceUpdateSectionSubheader::writeStream ( std::ostream &  out)

Write method.

Note always writes out in big endian at this point.

Parameters
outStream to write to.

Definition at line 96 of file ossimRpfReplaceUpdateSectionSubheader.cpp.

References ossim::byteOrder(), m_numberOfRecords, m_recordLength, m_tableOffset, OSSIM_BIG_ENDIAN, and ossimEndian::swap().

97 {
99  {
100  // Swap to big endian.
101  ossimEndian anEndian;
102  anEndian.swap(m_tableOffset);
103  anEndian.swap(m_numberOfRecords);
104  anEndian.swap(m_recordLength);
105  }
106 
107  out.write((char*)&m_tableOffset, 4);
108  out.write((char*)&m_numberOfRecords, 2);
109  out.write((char*)&m_recordLength, 2);
110 
112  {
113  // Swap back to native byte order.
114  ossimEndian anEndian;
115  anEndian.swap(m_tableOffset);
116  anEndian.swap(m_numberOfRecords);
117  anEndian.swap(m_recordLength);
118  }
119 }
OSSIM_DLL ossimByteOrder byteOrder()
Definition: ossimCommon.cpp:54
void swap(ossim_sint8 &)
Definition: ossimEndian.h:26

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const ossimRpfReplaceUpdateSectionSubheader data 
)
friend

Convenience output operator.

Definition at line 28 of file ossimRpfReplaceUpdateSectionSubheader.cpp.

29 {
30  return data.print(out);
31 }
std::ostream & print(std::ostream &out) const
print method that outputs a key/value type format adding prefix to keys.

Member Data Documentation

◆ m_numberOfRecords

ossim_uint16 ossimRpfReplaceUpdateSectionSubheader::m_numberOfRecords
private

◆ m_recordLength

ossim_uint16 ossimRpfReplaceUpdateSectionSubheader::m_recordLength
private

◆ m_tableOffset

ossim_uint32 ossimRpfReplaceUpdateSectionSubheader::m_tableOffset
private

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