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

#include <ossimNitfFileHeaderV2_0.h>

Inheritance diagram for ossimNitfFileHeaderV2_0:
ossimNitfFileHeaderV2_X ossimNitfFileHeader ossimObject ossimPropertyInterface ossimReferenced

Classes

struct  ossimNitfDisplayInfo
 

Public Member Functions

 ossimNitfFileHeaderV2_0 ()
 
virtual ~ossimNitfFileHeaderV2_0 ()
 
virtual void parseStream (ossim::istream &in)
 parse method. More...
 
virtual void writeStream (ossim::ostream &out)
 
virtual std::ostream & print (std::ostream &out, const std::string &prefix=std::string()) const
 print method that outputs a key/value type format adding prefix to keys. More...
 
virtual bool isEncrypted () const
 
virtual ossim_int32 getNumberOfImages () const
 
virtual ossim_int32 getNumberOfLabels () const
 
virtual ossim_int32 getNumberOfSymbols () const
 
virtual ossim_int32 getNumberOfGraphics () const
 
virtual ossim_int32 getNumberOfTextSegments () const
 
virtual ossim_int32 getNumberOfDataExtSegments () const
 
virtual ossim_int32 getNumberOfReservedExtSegments () const
 
virtual ossim_int32 getHeaderSize () const
 
virtual ossim_int64 getFileSize () const
 
virtual ossimString getSecurityClassification () const
 
virtual const char * getDateTime () const
 
virtual const char * getVersion () const
 
virtual ossimDrect getImageRect () const
 
virtual void addImageInfoRecord (const ossimNitfImageInfoRecordV2_0 &recordInfo)
 
virtual void replaceImageInfoRecord (ossim_uint32 i, const ossimNitfImageInfoRecordV2_0 &recordInfo)
 
virtual ossimNitfImageHeadergetNewImageHeader (ossim_uint32 imageNumber, ossim::istream &in) const
 
virtual ossimNitfSymbolHeadergetNewSymbolHeader (ossim_uint32 symbolNumber, ossim::istream &in) const
 
virtual ossimNitfLabelHeadergetNewLabelHeader (ossim_uint32 labelNumber, ossim::istream &in) const
 
virtual ossimNitfTextHeadergetNewTextHeader (ossim_uint32 textNumber, ossim::istream &in) const
 
virtual ossimNitfDataExtensionSegmentgetNewDataExtensionSegment (ossim_int32 dataExtNumber, ossim::istream &in) const
 
virtual ossimNitfImageHeaderallocateImageHeader () const
 
virtual ossimNitfSymbolHeaderallocateSymbolHeader () const
 
virtual ossimNitfLabelHeaderallocateLabelHeader () const
 
virtual ossimNitfTextHeaderallocateTextHeader () const
 
virtual ossimNitfDataExtensionSegmentallocateDataExtSegment () const
 
virtual void setCodeWords (const ossimString &codeWords)
 
virtual void setControlAndHandling (const ossimString &controlAndHandling)
 
virtual void setReleasingInstructions (const ossimString &releasingInstructions)
 
virtual void setClassificationAuthority (const ossimString &classAuth)
 
virtual void setSecurityControlNumber (const ossimString &controlNo)
 
virtual void setOriginatorsName (const ossimString &originatorName)
 
virtual void setOriginatorsPhone (const ossimString &origniatorPhone)
 
virtual ossimString getCodeWords () const
 
virtual ossimString getControlAndHandling () const
 
virtual ossimString getReleasingInstructions () const
 
virtual ossimString getClassificationAuthority () const
 
virtual ossimString getSecurityControlNumber () const
 
virtual ossimString getOriginatorsName () const
 
virtual ossimString getOriginatorsPhone () const
 
virtual bool isValid () const
 isValid will test if the fields are valid and will return true or false. More...
 
ossimString getComplianceLevel () const
 
ossimString getSecurityDowngrade () const
 
ossimString getDowngradingEvent () const
 
void setComplianceLevel (const ossimString &complianceLevel)
 
void setSecurityDowngrade (const ossimString &securityDowngrade)
 
void setDowngradingEvent (const ossimString &downgradeEvent)
 
virtual void setFileLength (ossim_uint64 fileLength)
 Sets file length (FL) field. More...
 
virtual void setHeaderLength (ossim_uint64 headerLength)
 Sets header length (HL) field. More...
 
virtual void setProperty (ossimRefPtr< ossimProperty > property)
 
virtual ossimRefPtr< ossimPropertygetProperty (const ossimString &name) const
 
virtual void getPropertyNames (std::vector< ossimString > &propertyNames) const
 
virtual bool saveState (ossimKeywordlist &kwl, const ossimString &prefix="") const
 
- Public Member Functions inherited from ossimNitfFileHeaderV2_X
 ossimNitfFileHeaderV2_X ()
 
void setComplexityLevel (const ossimString &level)
 
void setSystemType (const ossimString &systemType)
 
void setOriginatingStationId (const ossimString &originationId)
 
void setDate (const ossimLocalTm &d)
 Sets field FDT. More...
 
void setDate (const ossimString &d)
 Sets field FDT. More...
 
virtual void setDate ()
 Sets field FDT to current time converted to GMT(ZULU). More...
 
void setTitle (const ossimString &title)
 
void setFileSecurityClassification (const ossimString &securityClassification)
 
void setCopyNumber (const ossimString &copyNumber)
 
void setNumberOfCopies (const ossimString &numberOfCopies)
 
void setEncryption (const ossimString &encryption)
 
ossimString getComplexityLevel () const
 
ossimString getSystemType () const
 
ossimString getOriginatingStationId () const
 
ossimString getDate () const
 
ossimString getTitle () const
 
ossimString getCopyNumber () const
 
ossimString getNumberOfCopies () const
 
ossimString getEncryption () const
 
bool saveState (ossimKeywordlist &kwl, const ossimString &prefix="") const
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 Method to set fields from a keyword list. More...
 
- Public Member Functions inherited from ossimNitfFileHeader
 ossimNitfFileHeader ()
 
virtual ~ossimNitfFileHeader ()
 
void addTag (const ossimNitfTagInformation &tag, bool unique=true)
 
virtual void removeTag (const ossimString &tagName)
 
virtual bool getTagInformation (ossimNitfTagInformation &tag, int idx) const
 
virtual std::vector< ossimNitfTagInformationgetAllTags ()
 
virtual void setAllTags (std::vector< ossimNitfTagInformation > tagList)
 
virtual int getNumberOfTags () const
 
virtual bool getTag (ossimNitfTagInformation &tagInfo, const ossimString &tagName) const
 
bool hasImages () const
 
bool hasSymbols () const
 
bool hasGraphics () const
 
bool hasText () const
 
bool hasLabels () const
 
bool hasDataExtSegments () const
 
virtual ossim_uint32 getTotalTagLength () const
 
virtual std::ostream & printTags (std::ostream &out, const std::string &prefix=std::string()) const
 print tags method that outputs a key/value type format adding prefix to keys. More...
 
- Public Member Functions inherited from ossimObject
 ossimObject ()
 
virtual ~ossimObject ()
 
virtual ossimObjectdup () const
 
virtual ossimString getShortName () const
 
virtual ossimString getLongName () const
 
virtual ossimString getDescription () const
 
virtual ossimString getClassName () const
 
virtual RTTItypeid getType () const
 
virtual bool canCastTo (ossimObject *obj) const
 
virtual bool canCastTo (const RTTItypeid &id) const
 
virtual bool canCastTo (const ossimString &parentClassName) const
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
virtual std::ostream & print (std::ostream &out) const
 Generic print method. More...
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
 
virtual void accept (ossimVisitor &visitor)
 
- 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
 
- Public Member Functions inherited from ossimPropertyInterface
 ossimPropertyInterface ()
 
virtual ~ossimPropertyInterface ()
 
virtual void setProperty (const ossimString &name, const ossimString &value)
 
virtual ossimString getPropertyValueAsString (const ossimString &name) const
 
void getPropertyList (std::vector< ossimRefPtr< ossimProperty > > &propertyList) const
 
void setProperties (std::vector< ossimRefPtr< ossimProperty > > &propertyList)
 

Static Public Attributes

static const ossimString FSDWNG_KW = "fsdwng"
 Properties of a NITF 2.0 Header file. More...
 
static const ossimString FSDEVT_KW = "fsdevt"
 
- Static Public Attributes inherited from ossimNitfFileHeaderV2_X
static const ossimString FILE_TYPE_KW = "FILE_TYPE"
 Properties of a NITF 2.x Header file. More...
 
static const ossimString FHDR_KW = "FHDR"
 
static const ossimString VERSION_KW = "VERSION"
 
static const ossimString CLEVEL_KW = "CLEVEL"
 
static const ossimString STYPE_KW = "STYPE"
 
static const ossimString OSTAID_KW = "OSTAID"
 
static const ossimString FDT_KW = "FDT"
 
static const ossimString FTITLE_KW = "FTITLE"
 
static const ossimString FSCLAS_KW = "FSCLAS"
 
static const ossimString FSCODE_KW = "FSCODE"
 
static const ossimString FSCTLH_KW = "FSCTLH"
 
static const ossimString FSREL_KW = "FSREL"
 
static const ossimString FSCAUT_KW = "FSCAUT"
 
static const ossimString FSCTLN_KW = "FSCTLN"
 
static const ossimString FSCOP_KW = "FSCOP"
 
static const ossimString FSCPYS_KW = "FSCPYS"
 
static const ossimString ENCRYP_KW = "ENCRYP"
 
static const ossimString ONAME_KW = "ONAME"
 
static const ossimString OPHONE_KW = "OPHONE"
 

Private Member Functions

void clearFields ()
 
void setNumberOfImageInfoRecords (ossim_uint64 num)
 Sets the number of image records in the NITF 2.0 File Header. More...
 
void precomputeValues ()
 
void readImageInfoRecords (ossim::istream &in)
 
void readSymbolInfoRecords (ossim::istream &in)
 
void readLabelInfoRecords (ossim::istream &in)
 
void readTextFileInfoRecords (ossim::istream &in)
 
void readDataExtSegInfoRecords (ossim::istream &in)
 
void readResExtSegInfoRecords (ossim::istream &in)
 
void initializeAllOffsets ()
 
void readOverflowTags (ossim::istream &in)
 
void initializeDisplayLevels (ossim::istream &in)
 
void insertIntoDisplayInfoList (const ossimNitfDisplayInfo &displayInformation)
 

Private Attributes

ossimFilename theFilename
 
ossimDrect theImageRect
 
std::vector< ossimNitfDisplayInfotheDisplayInformationList
 
std::vector< ossimNitfImageOffsetInformationtheImageOffsetList
 
std::vector< ossimNitfSymbolOffsetInformationtheSymbolOffsetList
 
std::vector< ossimNitfLabelOffsetInformationtheLabelOffsetList
 
std::vector< ossimNitfTextOffsetInformationtheTextOffsetList
 
std::vector< ossimNitfDataExtSegOffsetInformationtheDataExtSegOffsetList
 
ossim_int32 theHeaderSize
 
char theCodewords [41]
 
char theControlAndHandling [41]
 
char theReleasingInstructions [41]
 
char theClassificationAuthority [21]
 
char theSecurityControlNumber [21]
 
char theSecurityDowngrade [7]
 
char theDowngradingEvent [41]
 FSDEVT: This is a conditional field and is a 40 byte Alphanumeric field. More...
 
char theOriginatorsName [28]
 ONAME: More...
 
char theOriginatorsPhone [19]
 
char theFileLength [13]
 
char theHeaderLength [7]
 HL: More...
 
char theNumberOfImageInfoRecords [4]
 NUMI: More...
 
std::vector< ossimNitfImageInfoRecordV2_0theNitfImageInfoRecords
 
char theNumberOfSymbolInfoRecords [4]
 
std::vector< ossimNitfSymbolInfoRecordV2_0theNitfSymbolInfoRecords
 
char theNumberOfLabelInfoRecords [4]
 NUML. More...
 
std::vector< ossimNitfLabelInfoRecordV2_0theNitfLabelInfoRecords
 
char theNumberOfTextFileInfoRecords [4]
 NUMT: More...
 
std::vector< ossimNitfTextInfoRecordV2_0theNitfTextInfoRecords
 
char theNumberOfDataExtSegInfoRecords [4]
 NUMDES: More...
 
std::vector< ossimNitfDataExtSegInfoRecordV2_0theNitfDataExtSegInfoRecords
 
char theNumberOfResExtSegInfoRecords [4]
 NUMRES: More...
 
std::vector< ossimNitfResExtSegInfoRecordV2_0theNitfResExtSegInfoRecords
 
char theUserDefinedHeaderDataLength [6]
 UDHDL: More...
 
char theUserDefinedHeaderOverflow [4]
 
char theExtendedHeaderDataLength [6]
 XHDL: More...
 
char theExtendedHeaderOverflow [4]
 

Additional Inherited Members

- Static Public Member Functions inherited from ossimNitfFileHeaderV2_X
static ossimString formatDate (const ossimString &version, const ossimLocalTm &d)
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 
- Protected Attributes inherited from ossimNitfFileHeaderV2_X
char theFileTypeVersion [10]
 Field: FHDR Required field for NITF and is a 9 byte value. More...
 
char theComplexityLevel [3]
 Field: CLEVEL. More...
 
char theSystemType [5]
 Field: STYPE. More...
 
char theOriginatingStationId [11]
 Field: OSTAID. More...
 
char theDateTime [15]
 Field: FDT. More...
 
char theFileTitle [81]
 Field: FTITLE. More...
 
char theSecurityClassification [2]
 Field: FSCLAS. More...
 
char theCopyNumber [6]
 Field: FSCOP. More...
 
char theNumberOfCopies [6]
 Field: FSCOPYS. More...
 
char theEncryption [2]
 Field: ENCRYP. More...
 
- Protected Attributes inherited from ossimNitfFileHeader
std::vector< ossimNitfTagInformationtheTagList
 
std::vector< ossimNitfDesInformationtheDesList
 

Detailed Description

Definition at line 147 of file ossimNitfFileHeaderV2_0.h.

Constructor & Destructor Documentation

◆ ossimNitfFileHeaderV2_0()

ossimNitfFileHeaderV2_0::ossimNitfFileHeaderV2_0 ( )

◆ ~ossimNitfFileHeaderV2_0()

ossimNitfFileHeaderV2_0::~ossimNitfFileHeaderV2_0 ( )
virtual

Definition at line 205 of file ossimNitfFileHeaderV2_0.cpp.

206 {
207 }

Member Function Documentation

◆ addImageInfoRecord()

void ossimNitfFileHeaderV2_0::addImageInfoRecord ( const ossimNitfImageInfoRecordV2_0 recordInfo)
virtual

Definition at line 957 of file ossimNitfFileHeaderV2_0.cpp.

References setNumberOfImageInfoRecords(), and theNitfImageInfoRecords.

Referenced by ossimNitf20Writer::writeBlockBandSeparate(), and ossimNitf20Writer::writeBlockBandSequential().

958 {
959  theNitfImageInfoRecords.push_back(recordInfo);
960 
962 }
void setNumberOfImageInfoRecords(ossim_uint64 num)
Sets the number of image records in the NITF 2.0 File Header.
std::vector< ossimNitfImageInfoRecordV2_0 > theNitfImageInfoRecords

◆ allocateDataExtSegment()

ossimNitfDataExtensionSegment * ossimNitfFileHeaderV2_0::allocateDataExtSegment ( ) const
virtual

◆ allocateImageHeader()

ossimNitfImageHeader * ossimNitfFileHeaderV2_0::allocateImageHeader ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1178 of file ossimNitfFileHeaderV2_0.cpp.

Referenced by getNewImageHeader(), and initializeDisplayLevels().

◆ allocateLabelHeader()

ossimNitfLabelHeader * ossimNitfFileHeaderV2_0::allocateLabelHeader ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1188 of file ossimNitfFileHeaderV2_0.cpp.

Referenced by getNewLabelHeader().

◆ allocateSymbolHeader()

ossimNitfSymbolHeader * ossimNitfFileHeaderV2_0::allocateSymbolHeader ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1183 of file ossimNitfFileHeaderV2_0.cpp.

Referenced by getNewSymbolHeader().

◆ allocateTextHeader()

ossimNitfTextHeader * ossimNitfFileHeaderV2_0::allocateTextHeader ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1193 of file ossimNitfFileHeaderV2_0.cpp.

Referenced by getNewTextHeader().

◆ clearFields()

void ossimNitfFileHeaderV2_0::clearFields ( )
private

Definition at line 1276 of file ossimNitfFileHeaderV2_0.cpp.

References theClassificationAuthority, theCodewords, ossimNitfFileHeaderV2_X::theComplexityLevel, theControlAndHandling, ossimNitfFileHeaderV2_X::theCopyNumber, theDataExtSegOffsetList, ossimNitfFileHeaderV2_X::theDateTime, theDisplayInformationList, theDowngradingEvent, ossimNitfFileHeaderV2_X::theEncryption, theExtendedHeaderDataLength, theExtendedHeaderOverflow, theFileLength, theFilename, ossimNitfFileHeaderV2_X::theFileTitle, ossimNitfFileHeaderV2_X::theFileTypeVersion, theHeaderLength, theHeaderSize, theImageOffsetList, theLabelOffsetList, theNitfDataExtSegInfoRecords, theNitfLabelInfoRecords, theNitfResExtSegInfoRecords, theNitfSymbolInfoRecords, theNitfTextInfoRecords, ossimNitfFileHeaderV2_X::theNumberOfCopies, theNumberOfDataExtSegInfoRecords, theNumberOfImageInfoRecords, theNumberOfLabelInfoRecords, theNumberOfResExtSegInfoRecords, theNumberOfSymbolInfoRecords, theNumberOfTextFileInfoRecords, ossimNitfFileHeaderV2_X::theOriginatingStationId, theOriginatorsName, theOriginatorsPhone, theReleasingInstructions, ossimNitfFileHeaderV2_X::theSecurityClassification, theSecurityControlNumber, theSecurityDowngrade, theSymbolOffsetList, ossimNitfFileHeaderV2_X::theSystemType, theTextOffsetList, theUserDefinedHeaderDataLength, and theUserDefinedHeaderOverflow.

Referenced by ossimNitfFileHeaderV2_0().

1277 {
1278  theDisplayInformationList.clear();
1279  theImageOffsetList.clear();
1280  theSymbolOffsetList.clear();
1281  theLabelOffsetList.clear();
1282  theTextOffsetList.clear();
1283  theDataExtSegOffsetList.clear();
1284  theNitfSymbolInfoRecords.clear();
1285  theNitfLabelInfoRecords.clear();
1286  theNitfTextInfoRecords.clear();
1289 
1290  theFilename = "";
1291  memcpy(theFileTypeVersion, "NITF02.00", 9);
1292  memset(theComplexityLevel, ' ', 2);
1293  memset(theSystemType, ' ', 4);
1294  memset(theOriginatingStationId, ' ', 10);
1295  memset(theDateTime, ' ', 14);
1296  memset(theFileTitle, ' ', 80);
1297  memset(theSecurityClassification, ' ', 1);
1298  memset(theCodewords, ' ', 40);
1299  memset(theControlAndHandling, ' ', 40);
1300  memset(theReleasingInstructions, ' ', 40);
1301  memset(theClassificationAuthority, ' ', 20);
1302  memset(theSecurityControlNumber, ' ', 20);
1303  memset(theSecurityDowngrade, ' ', 6);
1304  memset(theDowngradingEvent, ' ', 40);
1305  memset(theCopyNumber, ' ', 5);
1306  memset(theNumberOfCopies, ' ', 5);
1307  memset(theEncryption, ' ', 1);
1308  memset(theOriginatorsName, ' ', 27);
1309  memset(theOriginatorsPhone, ' ', 18);
1310  memset(theFileLength, ' ', 12);
1311  memset(theHeaderLength, ' ', 6);
1312  memset(theNumberOfImageInfoRecords, ' ', 3);
1313  memset(theNumberOfSymbolInfoRecords, ' ', 3);
1314  memset(theNumberOfLabelInfoRecords, ' ', 3);
1315  memset(theNumberOfTextFileInfoRecords, ' ', 3);
1316  memset(theNumberOfDataExtSegInfoRecords, ' ', 3);
1317  memset(theNumberOfResExtSegInfoRecords, ' ', 3);
1318  memset(theUserDefinedHeaderDataLength, '0', 5);
1319  memset(theUserDefinedHeaderOverflow, ' ', 3);
1320  memset(theExtendedHeaderDataLength, '0', 5);
1321  memset(theExtendedHeaderOverflow, ' ', 3);
1322 
1323  theFileTypeVersion[9] = '\0';
1324  theComplexityLevel[2] = '\0';
1325  theSystemType[4] = '\0';
1326  theOriginatingStationId[10] = '\0';
1327  theDateTime[14] = '\0';
1328  theFileTitle[80] = '\0';
1329  theSecurityClassification[1] = '\0';
1330  theCodewords[40] = '\0';
1331  theControlAndHandling[40] = '\0';
1332  theReleasingInstructions[40] = '\0';
1333  theClassificationAuthority[20] = '\0';
1334  theSecurityControlNumber[20] = '\0';
1335  theSecurityDowngrade[6] = '\0';
1336  theDowngradingEvent[40] = '\0';
1337  theCopyNumber[5] = '\0';
1338  theNumberOfCopies[5] = '\0';
1339  theEncryption[1] = '\0';
1340  theOriginatorsName[27] = '\0';
1341  theOriginatorsPhone[18] = '\0';
1342  theFileLength[12] = '\0';
1343  theHeaderLength[6] = '\0';
1344  theNumberOfImageInfoRecords[3] = '\0';
1345  theNumberOfSymbolInfoRecords[3] = '\0';
1346  theNumberOfLabelInfoRecords[3] = '\0';
1351  theUserDefinedHeaderOverflow[3] = '\0';
1352  theExtendedHeaderDataLength[5] = '\0';
1353  theExtendedHeaderOverflow[3] = '\0';
1354  theHeaderSize = 0;
1355 }
char theComplexityLevel[3]
Field: CLEVEL.
char theOriginatingStationId[11]
Field: OSTAID.
std::vector< ossimNitfSymbolOffsetInformation > theSymbolOffsetList
std::vector< ossimNitfResExtSegInfoRecordV2_0 > theNitfResExtSegInfoRecords
std::vector< ossimNitfDisplayInfo > theDisplayInformationList
char theFileTypeVersion[10]
Field: FHDR Required field for NITF and is a 9 byte value.
char theNumberOfResExtSegInfoRecords[4]
NUMRES:
std::vector< ossimNitfSymbolInfoRecordV2_0 > theNitfSymbolInfoRecords
std::vector< ossimNitfTextInfoRecordV2_0 > theNitfTextInfoRecords
std::vector< ossimNitfLabelOffsetInformation > theLabelOffsetList
char theSystemType[5]
Field: STYPE.
char theNumberOfDataExtSegInfoRecords[4]
NUMDES:
std::vector< ossimNitfDataExtSegInfoRecordV2_0 > theNitfDataExtSegInfoRecords
std::vector< ossimNitfLabelInfoRecordV2_0 > theNitfLabelInfoRecords
char theEncryption[2]
Field: ENCRYP.
std::vector< ossimNitfDataExtSegOffsetInformation > theDataExtSegOffsetList
char theDateTime[15]
Field: FDT.
char theDowngradingEvent[41]
FSDEVT: This is a conditional field and is a 40 byte Alphanumeric field.
char theNumberOfTextFileInfoRecords[4]
NUMT:
char theCopyNumber[6]
Field: FSCOP.
char theFileTitle[81]
Field: FTITLE.
char theSecurityClassification[2]
Field: FSCLAS.
char theNumberOfCopies[6]
Field: FSCOPYS.
std::vector< ossimNitfTextOffsetInformation > theTextOffsetList
char theUserDefinedHeaderDataLength[6]
UDHDL:
std::vector< ossimNitfImageOffsetInformation > theImageOffsetList

◆ getClassificationAuthority()

ossimString ossimNitfFileHeaderV2_0::getClassificationAuthority ( ) const
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1613 of file ossimNitfFileHeaderV2_0.cpp.

References theClassificationAuthority.

1614 {
1616 }

◆ getCodeWords()

ossimString ossimNitfFileHeaderV2_0::getCodeWords ( ) const
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1598 of file ossimNitfFileHeaderV2_0.cpp.

References theCodewords.

1599 {
1600  return theCodewords;
1601 }

◆ getComplianceLevel()

ossimString ossimNitfFileHeaderV2_0::getComplianceLevel ( ) const

Definition at line 1583 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfFileHeaderV2_X::theComplexityLevel.

1584 {
1585  return theComplexityLevel;
1586 }
char theComplexityLevel[3]
Field: CLEVEL.

◆ getControlAndHandling()

ossimString ossimNitfFileHeaderV2_0::getControlAndHandling ( ) const
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1603 of file ossimNitfFileHeaderV2_0.cpp.

References theControlAndHandling.

1604 {
1605  return theControlAndHandling;
1606 }

◆ getDateTime()

const char * ossimNitfFileHeaderV2_0::getDateTime ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1266 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfFileHeaderV2_X::theDateTime.

1267 {
1268  return theDateTime;
1269 }
char theDateTime[15]
Field: FDT.

◆ getDowngradingEvent()

ossimString ossimNitfFileHeaderV2_0::getDowngradingEvent ( ) const

Definition at line 1593 of file ossimNitfFileHeaderV2_0.cpp.

References theDowngradingEvent.

1594 {
1595  return theDowngradingEvent;
1596 }
char theDowngradingEvent[41]
FSDEVT: This is a conditional field and is a 40 byte Alphanumeric field.

◆ getFileSize()

ossim_int64 ossimNitfFileHeaderV2_0::getFileSize ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1248 of file ossimNitfFileHeaderV2_0.cpp.

References theFileLength, and ossimString::toInt64().

1249 {
1250  ossimString temp = theFileLength;
1251  if(temp == "999999999999")
1252  {
1253  return -1;
1254  }
1255  else
1256  {
1257  return temp.toInt64();
1258  }
1259 }
ossim_int64 toInt64() const

◆ getHeaderSize()

ossim_int32 ossimNitfFileHeaderV2_0::getHeaderSize ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1238 of file ossimNitfFileHeaderV2_0.cpp.

References theHeaderSize.

1239 {
1240  return theHeaderSize;
1241 }

◆ getImageRect()

ossimDrect ossimNitfFileHeaderV2_0::getImageRect ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 952 of file ossimNitfFileHeaderV2_0.cpp.

References theImageRect.

953 {
954  return theImageRect;
955 }

◆ getNewDataExtensionSegment()

ossimNitfDataExtensionSegment * ossimNitfFileHeaderV2_0::getNewDataExtensionSegment ( ossim_int32  dataExtNumber,
ossim::istream in 
) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1041 of file ossimNitfFileHeaderV2_0.cpp.

References allocateDataExtSegment(), getNumberOfDataExtSegments(), ossimNitfDataExtensionSegment::parseStream(), theDataExtSegOffsetList, and theNitfDataExtSegInfoRecords.

Referenced by readOverflowTags().

1043 {
1044  ossimNitfDataExtensionSegment *result = 0;
1045 
1046  if((getNumberOfDataExtSegments() > 0) &&
1047  (dataExtNumber < (ossim_int32)theNitfDataExtSegInfoRecords.size()) &&
1048  (dataExtNumber >= 0))
1049  {
1050  result = allocateDataExtSegment();
1051  in.seekg(theDataExtSegOffsetList[dataExtNumber].theDataExtSegHeaderOffset, std::ios::beg);
1052  result->parseStream(in, theNitfDataExtSegInfoRecords[dataExtNumber].getImageLength());
1053  }
1054 
1055  return result;
1056 }
virtual ossimNitfDataExtensionSegment * allocateDataExtSegment() const
std::vector< ossimNitfDataExtSegInfoRecordV2_0 > theNitfDataExtSegInfoRecords
virtual ossim_int32 getNumberOfDataExtSegments() const
std::vector< ossimNitfDataExtSegOffsetInformation > theDataExtSegOffsetList
virtual void parseStream(std::istream &in, ossim_uint64 dataLength)=0
int ossim_int32

◆ getNewImageHeader()

ossimNitfImageHeader * ossimNitfFileHeaderV2_0::getNewImageHeader ( ossim_uint32  imageNumber,
ossim::istream in 
) const
virtual

Implements ossimNitfFileHeader.

Definition at line 970 of file ossimNitfFileHeaderV2_0.cpp.

References allocateImageHeader(), getNumberOfImages(), ossimNotify(), ossimNotifyLevel_FATAL, ossimNitfImageHeader::parseStream(), and theImageOffsetList.

972 {
973  ossimNitfImageHeader *result = 0;
974 
975  if( (getNumberOfImages() > 0) && (imageNumber < theImageOffsetList.size()) )
976  {
977  result = allocateImageHeader();
978  in.seekg(theImageOffsetList[imageNumber].theImageHeaderOffset, std::ios::beg);
979  result->parseStream(in);
980  }
981  else
982  {
983 #if 0
984  ossimNotify(ossimNotifyLevel_FATAL) << "ossimNitfFileHeaderV2_0::getNewImageHeader ERROR:"
985  << "\nNo images in file or image number (" << imageNumber
986  << ") is out of range!\n";
987 #endif
988  }
989 
990  return result;
991 }
virtual void parseStream(ossim::istream &in)=0
virtual ossimNitfImageHeader * allocateImageHeader() const
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
virtual ossim_int32 getNumberOfImages() const
std::vector< ossimNitfImageOffsetInformation > theImageOffsetList

◆ getNewLabelHeader()

ossimNitfLabelHeader * ossimNitfFileHeaderV2_0::getNewLabelHeader ( ossim_uint32  labelNumber,
ossim::istream in 
) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1009 of file ossimNitfFileHeaderV2_0.cpp.

References allocateLabelHeader(), getNumberOfLabels(), ossimNitfLabelHeader::parseStream(), and theLabelOffsetList.

1011 {
1012  ossimNitfLabelHeader *result = 0;
1013 
1014  if( (getNumberOfLabels() > 0) &&
1015  (labelNumber < theLabelOffsetList.size()) )
1016  {
1017  result = allocateLabelHeader();
1018  in.seekg(theLabelOffsetList[labelNumber].theLabelHeaderOffset, std::ios::beg);
1019  result->parseStream(in);
1020  }
1021 
1022  return result;
1023 }
std::vector< ossimNitfLabelOffsetInformation > theLabelOffsetList
virtual ossimNitfLabelHeader * allocateLabelHeader() const
virtual void parseStream(std::istream &in)=0
virtual ossim_int32 getNumberOfLabels() const

◆ getNewSymbolHeader()

ossimNitfSymbolHeader * ossimNitfFileHeaderV2_0::getNewSymbolHeader ( ossim_uint32  symbolNumber,
ossim::istream in 
) const
virtual

Implements ossimNitfFileHeader.

Definition at line 993 of file ossimNitfFileHeaderV2_0.cpp.

References allocateSymbolHeader(), getNumberOfSymbols(), ossimNitfSymbolHeader::parseStream(), and theSymbolOffsetList.

995 {
996  ossimNitfSymbolHeader *result = 0;
997 
998  if( (getNumberOfSymbols() > 0) &&
999  (symbolNumber < theSymbolOffsetList.size()) )
1000  {
1001  result = allocateSymbolHeader();
1002  in.seekg(theSymbolOffsetList[symbolNumber].theSymbolHeaderOffset, std::ios::beg);
1003  result->parseStream(in);
1004  }
1005 
1006  return result;
1007 }
std::vector< ossimNitfSymbolOffsetInformation > theSymbolOffsetList
virtual ossimNitfSymbolHeader * allocateSymbolHeader() const
virtual ossim_int32 getNumberOfSymbols() const
virtual void parseStream(std::istream &in)=0

◆ getNewTextHeader()

ossimNitfTextHeader * ossimNitfFileHeaderV2_0::getNewTextHeader ( ossim_uint32  textNumber,
ossim::istream in 
) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1025 of file ossimNitfFileHeaderV2_0.cpp.

References allocateTextHeader(), getNumberOfTextSegments(), ossimNitfTextHeader::parseStream(), and theTextOffsetList.

1027 {
1028  ossimNitfTextHeader *result = 0;
1029 
1030  if( (getNumberOfTextSegments() > 0) &&
1031  (textNumber < theTextOffsetList.size()) )
1032  {
1033  result = allocateTextHeader();
1034  in.seekg(theTextOffsetList[textNumber].theTextHeaderOffset, std::ios::beg);
1035  result->parseStream(in);
1036  }
1037 
1038  return result;
1039 }
virtual ossimNitfTextHeader * allocateTextHeader() const
virtual ossim_int32 getNumberOfTextSegments() const
virtual void parseStream(std::istream &in)=0
std::vector< ossimNitfTextOffsetInformation > theTextOffsetList

◆ getNumberOfDataExtSegments()

ossim_int32 ossimNitfFileHeaderV2_0::getNumberOfDataExtSegments ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1233 of file ossimNitfFileHeaderV2_0.cpp.

References theNitfDataExtSegInfoRecords.

Referenced by getNewDataExtensionSegment().

1234 {
1236 }
std::vector< ossimNitfDataExtSegInfoRecordV2_0 > theNitfDataExtSegInfoRecords
int ossim_int32

◆ getNumberOfGraphics()

ossim_int32 ossimNitfFileHeaderV2_0::getNumberOfGraphics ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1223 of file ossimNitfFileHeaderV2_0.cpp.

1224 {
1225  return 0;
1226 }

◆ getNumberOfImages()

ossim_int32 ossimNitfFileHeaderV2_0::getNumberOfImages ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1208 of file ossimNitfFileHeaderV2_0.cpp.

References theNitfImageInfoRecords.

Referenced by getNewImageHeader().

1209 {
1210  return (ossim_int32)theNitfImageInfoRecords.size();
1211 }
std::vector< ossimNitfImageInfoRecordV2_0 > theNitfImageInfoRecords
int ossim_int32

◆ getNumberOfLabels()

ossim_int32 ossimNitfFileHeaderV2_0::getNumberOfLabels ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1213 of file ossimNitfFileHeaderV2_0.cpp.

References theNitfLabelInfoRecords.

Referenced by getNewLabelHeader().

1214 {
1215  return ((ossim_int32)theNitfLabelInfoRecords.size());
1216 }
std::vector< ossimNitfLabelInfoRecordV2_0 > theNitfLabelInfoRecords
int ossim_int32

◆ getNumberOfReservedExtSegments()

ossim_int32 ossimNitfFileHeaderV2_0::getNumberOfReservedExtSegments ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1243 of file ossimNitfFileHeaderV2_0.cpp.

References theNitfResExtSegInfoRecords.

1244 {
1245  return theNitfResExtSegInfoRecords.size();
1246 }
std::vector< ossimNitfResExtSegInfoRecordV2_0 > theNitfResExtSegInfoRecords

◆ getNumberOfSymbols()

ossim_int32 ossimNitfFileHeaderV2_0::getNumberOfSymbols ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1218 of file ossimNitfFileHeaderV2_0.cpp.

References theNitfSymbolInfoRecords.

Referenced by getNewSymbolHeader().

1219 {
1220  return ((ossim_int32)theNitfSymbolInfoRecords.size());
1221 }
std::vector< ossimNitfSymbolInfoRecordV2_0 > theNitfSymbolInfoRecords
int ossim_int32

◆ getNumberOfTextSegments()

ossim_int32 ossimNitfFileHeaderV2_0::getNumberOfTextSegments ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1228 of file ossimNitfFileHeaderV2_0.cpp.

References theNitfTextInfoRecords.

Referenced by getNewTextHeader().

1229 {
1230  return (ossim_int32)theNitfTextInfoRecords.size();
1231 }
std::vector< ossimNitfTextInfoRecordV2_0 > theNitfTextInfoRecords
int ossim_int32

◆ getOriginatorsName()

ossimString ossimNitfFileHeaderV2_0::getOriginatorsName ( ) const
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1623 of file ossimNitfFileHeaderV2_0.cpp.

References theOriginatorsName.

1624 {
1625  return theOriginatorsName;
1626 }

◆ getOriginatorsPhone()

ossimString ossimNitfFileHeaderV2_0::getOriginatorsPhone ( ) const
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1628 of file ossimNitfFileHeaderV2_0.cpp.

References theOriginatorsPhone.

1629 {
1630  return theOriginatorsPhone;
1631 }

◆ getProperty()

ossimRefPtr< ossimProperty > ossimNitfFileHeaderV2_0::getProperty ( const ossimString name) const
virtual

Reimplemented from ossimNitfFileHeaderV2_X.

Definition at line 1662 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfFileHeaderV2_X::CLEVEL_KW, FSDEVT_KW, FSDWNG_KW, ossimNitfFileHeaderV2_X::getProperty(), ossimNitfFileHeaderV2_X::ONAME_KW, ossimNitfFileHeaderV2_X::OPHONE_KW, ossimNitfFileHeaderV2_X::theComplexityLevel, theDowngradingEvent, theOriginatorsName, theOriginatorsPhone, and theSecurityDowngrade.

1663 {
1664  ossimProperty* property = 0;
1665 
1666 
1667  if(name == CLEVEL_KW)
1668  {
1669  property = new ossimStringProperty(name, ossimString(theComplexityLevel).trim());
1670  }
1671  else if(name == FSDWNG_KW)
1672  {
1673  property = new ossimStringProperty(name, ossimString(theSecurityDowngrade).trim());
1674  }
1675  else if(name == FSDEVT_KW)
1676  {
1677  property = new ossimStringProperty(name, ossimString(theDowngradingEvent).trim());
1678  }
1679  else if(name == ONAME_KW)
1680  {
1681  property = new ossimStringProperty(name, ossimString(theOriginatorsName).trim());
1682  }
1683  else if(name == OPHONE_KW)
1684  {
1685  property = new ossimStringProperty(name, ossimString(theOriginatorsPhone).trim());
1686  }
1687  else
1688  {
1690  }
1691  return property;
1692 }
char theComplexityLevel[3]
Field: CLEVEL.
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
static const ossimString ONAME_KW
static const ossimString FSDWNG_KW
Properties of a NITF 2.0 Header file.
char theDowngradingEvent[41]
FSDEVT: This is a conditional field and is a 40 byte Alphanumeric field.
static const ossimString CLEVEL_KW
static const ossimString OPHONE_KW
static const ossimString FSDEVT_KW

◆ getPropertyNames()

void ossimNitfFileHeaderV2_0::getPropertyNames ( std::vector< ossimString > &  propertyNames) const
virtual

Reimplemented from ossimNitfFileHeaderV2_X.

Definition at line 1694 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfFileHeaderV2_X::CLEVEL_KW, ossimNitfFileHeaderV2_X::ENCRYP_KW, ossimNitfFileHeaderV2_X::FDT_KW, ossimNitfFileHeaderV2_X::FSCAUT_KW, ossimNitfFileHeaderV2_X::FSCLAS_KW, ossimNitfFileHeaderV2_X::FSCODE_KW, ossimNitfFileHeaderV2_X::FSCOP_KW, ossimNitfFileHeaderV2_X::FSCPYS_KW, ossimNitfFileHeaderV2_X::FSCTLH_KW, ossimNitfFileHeaderV2_X::FSCTLN_KW, ossimNitfFileHeaderV2_X::FSREL_KW, ossimNitfFileHeaderV2_X::FTITLE_KW, ossimNitfFileHeaderV2_X::getPropertyNames(), ossimNitfFileHeaderV2_X::ONAME_KW, ossimNitfFileHeaderV2_X::OPHONE_KW, ossimNitfFileHeaderV2_X::OSTAID_KW, and ossimNitfFileHeaderV2_X::STYPE_KW.

1695 {
1697 
1698  propertyNames.push_back(CLEVEL_KW);
1699  propertyNames.push_back(STYPE_KW);
1700  propertyNames.push_back(OSTAID_KW);
1701  propertyNames.push_back(FDT_KW);
1702  propertyNames.push_back(FTITLE_KW);
1703  propertyNames.push_back(FSCLAS_KW);
1704  propertyNames.push_back(FSCODE_KW);
1705  propertyNames.push_back(FSCTLH_KW);
1706  propertyNames.push_back(FSREL_KW);
1707  propertyNames.push_back(FSCAUT_KW);
1708  propertyNames.push_back(FSCTLN_KW);
1709  propertyNames.push_back(FSCOP_KW);
1710  propertyNames.push_back(FSCPYS_KW);
1711  propertyNames.push_back(ENCRYP_KW);
1712  propertyNames.push_back(ONAME_KW);
1713  propertyNames.push_back(OPHONE_KW);
1714 }
static const ossimString FSCOP_KW
static const ossimString FSREL_KW
static const ossimString STYPE_KW
static const ossimString FSCPYS_KW
static const ossimString FTITLE_KW
static const ossimString FSCLAS_KW
static const ossimString OSTAID_KW
static const ossimString ONAME_KW
static const ossimString FSCODE_KW
static const ossimString FSCAUT_KW
static const ossimString ENCRYP_KW
static const ossimString CLEVEL_KW
static const ossimString OPHONE_KW
static const ossimString FSCTLH_KW
static const ossimString FSCTLN_KW
static const ossimString FDT_KW
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const

◆ getReleasingInstructions()

ossimString ossimNitfFileHeaderV2_0::getReleasingInstructions ( ) const
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1608 of file ossimNitfFileHeaderV2_0.cpp.

References theReleasingInstructions.

1609 {
1610  return theReleasingInstructions;
1611 }

◆ getSecurityClassification()

ossimString ossimNitfFileHeaderV2_0::getSecurityClassification ( ) const
virtual

Reimplemented from ossimNitfFileHeaderV2_X.

Definition at line 1271 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfFileHeaderV2_X::theSecurityClassification.

1272 {
1274 }
char theSecurityClassification[2]
Field: FSCLAS.

◆ getSecurityControlNumber()

ossimString ossimNitfFileHeaderV2_0::getSecurityControlNumber ( ) const
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1618 of file ossimNitfFileHeaderV2_0.cpp.

References theSecurityControlNumber.

1619 {
1620  return theSecurityControlNumber;
1621 }

◆ getSecurityDowngrade()

ossimString ossimNitfFileHeaderV2_0::getSecurityDowngrade ( ) const

Definition at line 1588 of file ossimNitfFileHeaderV2_0.cpp.

References theSecurityDowngrade.

1589 {
1590  return theSecurityDowngrade;
1591 }

◆ getVersion()

const char * ossimNitfFileHeaderV2_0::getVersion ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1261 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfFileHeaderV2_X::theFileTypeVersion.

1262 {
1263  return &theFileTypeVersion[4];
1264 }
char theFileTypeVersion[10]
Field: FHDR Required field for NITF and is a 9 byte value.

◆ initializeAllOffsets()

void ossimNitfFileHeaderV2_0::initializeAllOffsets ( )
private

If the header was parsed this method will initialize the offsets to whare all data resides within the file. Example: NITF files have several sections (Image, Symbol, Labels, Text and Extended data) and each of these sections have subsections. The offsets stored are just offsets from the start of the file to each major section and eqach subsection.

Definition at line 1130 of file ossimNitfFileHeaderV2_0.cpp.

References theDataExtSegOffsetList, theHeaderSize, theImageOffsetList, theLabelOffsetList, theNitfDataExtSegInfoRecords, theNitfImageInfoRecords, theNitfLabelInfoRecords, theNitfSymbolInfoRecords, theNitfTextInfoRecords, theSymbolOffsetList, and theTextOffsetList.

1131 {
1132  // this will be a running tally
1133  ossim_uint64 tally = theHeaderSize;
1134  ossim_uint32 idx = 0;
1135 
1136  // clear out all offset inforamtion and begin populating them
1137  theImageOffsetList.clear();
1138  theSymbolOffsetList.clear();
1139  theLabelOffsetList.clear();
1140  theLabelOffsetList.clear();
1141 
1142 
1143  for(idx = 0; idx < theNitfImageInfoRecords.size(); ++idx)
1144  {
1146  tally + theNitfImageInfoRecords[idx].getHeaderLength()));
1147  tally += theNitfImageInfoRecords[idx].getTotalLength();
1148  }
1149  for(idx = 0; idx < theNitfSymbolInfoRecords.size(); ++idx)
1150  {
1152  tally + theNitfSymbolInfoRecords[idx].getHeaderLength()));
1153  tally += theNitfSymbolInfoRecords[idx].getTotalLength();
1154  }
1155 
1156  for(idx = 0; idx < theNitfLabelInfoRecords.size(); ++idx)
1157  {
1159  tally + theNitfLabelInfoRecords[idx].getHeaderLength()));
1160  tally += theNitfLabelInfoRecords[idx].getTotalLength();
1161  }
1162 
1163  for(idx = 0; idx < theNitfTextInfoRecords.size(); ++idx)
1164  {
1166  tally + theNitfTextInfoRecords[idx].getHeaderLength()));
1167  tally += theNitfTextInfoRecords[idx].getTotalLength();
1168  }
1169 
1170  for(idx = 0; idx < theNitfDataExtSegInfoRecords.size(); ++idx)
1171  {
1173  tally + theNitfDataExtSegInfoRecords[idx].getHeaderLength()));
1174  tally += theNitfDataExtSegInfoRecords[idx].getTotalLength();
1175  }
1176 }
std::vector< ossimNitfSymbolOffsetInformation > theSymbolOffsetList
std::vector< ossimNitfSymbolInfoRecordV2_0 > theNitfSymbolInfoRecords
std::vector< ossimNitfTextInfoRecordV2_0 > theNitfTextInfoRecords
std::vector< ossimNitfLabelOffsetInformation > theLabelOffsetList
std::vector< ossimNitfDataExtSegInfoRecordV2_0 > theNitfDataExtSegInfoRecords
std::vector< ossimNitfLabelInfoRecordV2_0 > theNitfLabelInfoRecords
std::vector< ossimNitfDataExtSegOffsetInformation > theDataExtSegOffsetList
unsigned long long ossim_uint64
unsigned int ossim_uint32
std::vector< ossimNitfImageInfoRecordV2_0 > theNitfImageInfoRecords
std::vector< ossimNitfTextOffsetInformation > theTextOffsetList
std::vector< ossimNitfImageOffsetInformation > theImageOffsetList

◆ initializeDisplayLevels()

void ossimNitfFileHeaderV2_0::initializeDisplayLevels ( ossim::istream in)
private

This method will be called after the header is read in and the offsets have been initialized. It will sort in order all renderable data based on their display level.

Definition at line 1058 of file ossimNitfFileHeaderV2_0.cpp.

References allocateImageHeader(), ossimDrect::combine(), ossimNitfImageHeader::getDisplayLevel(), ossimNitfImageHeader::getImageRect(), ossimDrect::height(), insertIntoDisplayInfoList(), ossimNitfImageHeader::parseStream(), theDisplayInformationList, theImageOffsetList, theImageRect, and ossimDrect::width().

1059 {
1060  // we will need to temporarily save the get pointer since
1061  // initializeDisplayLevels changes it.
1062  std::streampos saveTheGetPointer = in.tellg();
1063 
1064  std::vector<ossimNitfImageOffsetInformation>::iterator imageOffsetList = theImageOffsetList.begin();
1065 
1066  // allocate temporary space to store image headers
1067  ossimNitfImageHeader* imageHeader = allocateImageHeader();
1068 
1069  // clear the list
1070  theDisplayInformationList.clear();
1071 
1072  theImageRect = ossimDrect(0,0,0,0);
1073  if(!imageHeader)
1074  {
1075  return;
1076  }
1077 
1078  ossim_uint32 idx = 0;
1079  while(imageOffsetList != theImageOffsetList.end())
1080  {
1081  // position the get pointer in the input
1082  // stream to the start of the image header
1083  in.seekg((*imageOffsetList).theImageHeaderOffset, std::ios::beg);
1084  // get the data
1085  imageHeader->parseStream(in);
1086  // create a union of rects. The result should be the image rect.
1087  ossimDrect tempRect = imageHeader->getImageRect();
1088  if((tempRect.width() > 1) &&
1089  (tempRect.height() > 1))
1090  {
1091  theImageRect = theImageRect.combine(tempRect);
1092  }
1093 
1094  insertIntoDisplayInfoList(ossimNitfDisplayInfo(ossimString("IM"),
1095  imageHeader->getDisplayLevel(),
1096  idx));
1097 
1098  ++imageOffsetList;
1099  ++idx;
1100  }
1101  delete imageHeader;
1102  imageHeader = 0;
1103 
1104 
1105 
1106  // finally we reset the saved get state back
1107  // to its original position
1108  in.seekg(saveTheGetPointer, std::ios::beg);
1109 }
void insertIntoDisplayInfoList(const ossimNitfDisplayInfo &displayInformation)
std::vector< ossimNitfDisplayInfo > theDisplayInformationList
ossim_float64 width() const
Definition: ossimDrect.h:522
virtual void parseStream(ossim::istream &in)=0
ossimDrect combine(const ossimDrect &rect) const
Definition: ossimDrect.h:826
virtual ossim_uint32 getDisplayLevel() const =0
virtual ossimNitfImageHeader * allocateImageHeader() const
virtual ossimIrect getImageRect() const =0
unsigned int ossim_uint32
ossim_float64 height() const
Definition: ossimDrect.h:517
std::vector< ossimNitfImageOffsetInformation > theImageOffsetList

◆ insertIntoDisplayInfoList()

void ossimNitfFileHeaderV2_0::insertIntoDisplayInfoList ( const ossimNitfDisplayInfo displayInformation)
private

Definition at line 1111 of file ossimNitfFileHeaderV2_0.cpp.

References theDisplayInformationList, and ossimNitfFileHeaderV2_0::ossimNitfDisplayInfo::theDisplayLevel.

Referenced by initializeDisplayLevels().

1112 {
1113  std::vector<ossimNitfDisplayInfo>::iterator displayList = theDisplayInformationList.begin();
1114 
1115  while(displayList != theDisplayInformationList.end())
1116  {
1117  if(displayInformation.theDisplayLevel < (*displayList).theDisplayLevel)
1118  {
1119  theDisplayInformationList.insert(displayList, displayInformation);
1120  return;
1121  }
1122  ++displayList;
1123  }
1124 
1125  // If we get here it means it's larger than all others
1126  // and we push onto the end
1127  theDisplayInformationList.push_back(displayInformation);
1128 }
std::vector< ossimNitfDisplayInfo > theDisplayInformationList

◆ isEncrypted()

bool ossimNitfFileHeaderV2_0::isEncrypted ( ) const
virtual

Implements ossimNitfFileHeader.

Definition at line 1203 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfFileHeaderV2_X::theEncryption.

1204 {
1205  return (theEncryption[0] == '1');
1206 }
char theEncryption[2]
Field: ENCRYP.

◆ isValid()

bool ossimNitfFileHeaderV2_0::isValid ( void  ) const
virtual

isValid will test if the fields are valid and will return true or false.

Reimplemented from ossimNitfFileHeaderV2_X.

Definition at line 209 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfFileHeaderV2_X::isValid().

210 {
211  bool result = ossimNitfFileHeaderV2_X::isValid();
212 
213  if(result)
214  {
215 
216  }
217 
218  return result;
219 }
virtual bool isValid() const
isValid will test if the fields are valid and will return true or false.

◆ parseStream()

void ossimNitfFileHeaderV2_0::parseStream ( ossim::istream in)
virtual

parse method.

Returns
This method returns void but will throw an std::exception in certain instances if the stream goes bad on seeks.

Implements ossimNitfFileHeader.

Definition at line 221 of file ossimNitfFileHeaderV2_0.cpp.

222 {
223  if(traceDebug())
224  {
226  << "ossimNitfFileHeaderV2_0::parseStream: entered ......."
227  << std::endl;
228  }
229 
230  clearFields();
231 
232  // identification and origination group
233  in.read(theFileTypeVersion, 9);
234  theHeaderSize+=9;
235  in.read(theComplexityLevel, 2);
236  theHeaderSize+=2;
237  in.read(theSystemType, 4);
238  theHeaderSize+=4;
239  in.read(theOriginatingStationId, 10);
240  theHeaderSize+=10;
241  in.read(theDateTime, 14);
242  theHeaderSize+=14;
243  in.read(theFileTitle, 80);
244  theHeaderSize+=80;
245 
246  // read security group
247  in.read(theSecurityClassification, 1);
248  theHeaderSize++;
249  in.read(theCodewords, 40);
250  theHeaderSize+=40;
251  in.read(theControlAndHandling, 40);
252  theHeaderSize+=40;
253  in.read(theReleasingInstructions, 40);
254  theHeaderSize+=40;
255  in.read(theClassificationAuthority, 20);
256  theHeaderSize+=20;
257  in.read(theSecurityControlNumber, 20);
258  theHeaderSize+=20;
259  in.read(theSecurityDowngrade, 6);
260  theHeaderSize+=6;
261  if(ossimString(theSecurityDowngrade) == "999998")
262  {
263  in.read(theDowngradingEvent, 40);
264  theHeaderSize+=40;
265  }
266  in.read(theCopyNumber, 5);
267  theHeaderSize+=5;
268  in.read(theNumberOfCopies, 5);
269  theHeaderSize+=5;
270  in.read(theEncryption, 1);
271  theHeaderSize++;
272  in.read(theOriginatorsName, 27);
273  theHeaderSize+=27;
274  in.read(theOriginatorsPhone, 18);
275  theHeaderSize+=18;
276 
277  in.read(theFileLength, 12);
278  theHeaderSize+=12;
279  in.read(theHeaderLength, 6);
280  theHeaderSize+=6;
281 
282  // image description group
283  in.read(theNumberOfImageInfoRecords, 3);
284  theHeaderSize+=3;
286 
287  // symbol description group
288  in.read(theNumberOfSymbolInfoRecords, 3);
289  theHeaderSize+=3;
291 
292  // label description group
293  in.read(theNumberOfLabelInfoRecords, 3);
294  theHeaderSize+=3;
296 
297  // text file information group
298  in.read(theNumberOfTextFileInfoRecords, 3);
299  theHeaderSize+=3;
301 
302  // Data extension group
304  theHeaderSize+=3;
306 
307  // Reserve Extension Segment group
309  theHeaderSize+=3;
311 
312  in.read(theUserDefinedHeaderDataLength, 5);
313  theHeaderSize+=5;
314 
315  theTagList.clear();
316  // only get the header overflow if there even exists
317  // user defined data.
318  ossim_int32 userDefinedHeaderLength = ossimString(theUserDefinedHeaderDataLength).toInt32();
319 
320  ossimNitfTagInformation headerTag;
321 
322  std::streampos start = in.tellg();
323  std::streampos current = in.tellg();
324 
325  theHeaderSize+=userDefinedHeaderLength;
326  if(userDefinedHeaderLength > 0)
327  {
328  in.read(theUserDefinedHeaderOverflow, 3);
329 
330  current = in.tellg();
331  while((current - start) < userDefinedHeaderLength)
332  {
333  headerTag.parseStream(in);
334  headerTag.setTagType("UDHD");
335  theTagList.push_back(headerTag);
336  // in.ignore(headerTag.getTagLength());
337  // headerTag.clearFields();
338 
339  //---
340  // We will check the stream here as there have been instances of
341  // rpf's with bad stream offsets.
342  //---
343  if (!in)
344  {
345  std::string e =
346  "ossimNitfFileHeaderV2_0::parseStream stream error!";
347  throw ossimException(e);
348  }
349 
350  current = in.tellg();
351  }
352  }
353  in.read(theExtendedHeaderDataLength, 5);
354  theHeaderSize+=5;
355  ossim_int32 extendedHeaderDataLength = ossimString(theExtendedHeaderDataLength).toInt32();
356  theHeaderSize+=extendedHeaderDataLength;
357 
358  start = in.tellg();
359  current = in.tellg();
360  // for now let's just ignore it
361  if(extendedHeaderDataLength > 0)
362  {
363  in.read(theExtendedHeaderOverflow, 3);
364  current = in.tellg();
365 
366  while((current - start) < extendedHeaderDataLength)
367  {
368  headerTag.parseStream(in);
369  headerTag.setTagType("XHD");
370  theTagList.push_back(headerTag);
371  in.ignore(headerTag.getTagLength());
372  headerTag.clearFields();
373  current = in.tellg();
374  }
375  }
376 
377  // this need to be re-thought
379  readOverflowTags(in);
380 
381  if(traceDebug())
382  {
384  }
385  if(traceDebug())
386  {
388  << "ossimNitfFileHeaderV2_0::parseStream: Leaving......."
389  << std::endl;
390  }
391 // initializeDisplayLevels(in);
392 
393 }
char theComplexityLevel[3]
Field: CLEVEL.
virtual std::ostream & print(std::ostream &out, const std::string &prefix=std::string()) const
Print method that outputs a key/value type format adding prefix to keys.
char theOriginatingStationId[11]
Field: OSTAID.
char theFileTypeVersion[10]
Field: FHDR Required field for NITF and is a 9 byte value.
char theNumberOfResExtSegInfoRecords[4]
NUMRES:
virtual void parseStream(ossim::istream &in)
void setTagType(const ossimString &tagType) const
char theSystemType[5]
Field: STYPE.
void readImageInfoRecords(ossim::istream &in)
void readTextFileInfoRecords(ossim::istream &in)
std::vector< ossimNitfTagInformation > theTagList
ossim_int32 toInt32() const
char theNumberOfDataExtSegInfoRecords[4]
NUMDES:
char theEncryption[2]
Field: ENCRYP.
char theDateTime[15]
Field: FDT.
char theDowngradingEvent[41]
FSDEVT: This is a conditional field and is a 40 byte Alphanumeric field.
void readOverflowTags(ossim::istream &in)
void readDataExtSegInfoRecords(ossim::istream &in)
void readSymbolInfoRecords(ossim::istream &in)
char theNumberOfTextFileInfoRecords[4]
NUMT:
char theCopyNumber[6]
Field: FSCOP.
char theFileTitle[81]
Field: FTITLE.
void readResExtSegInfoRecords(ossim::istream &in)
char theSecurityClassification[2]
Field: FSCLAS.
char theNumberOfCopies[6]
Field: FSCOPYS.
ossim_uint32 getTagLength() const
Should return the value of theTagLength which is the length of the data in bytes. ...
void readLabelInfoRecords(ossim::istream &in)
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
int ossim_int32
char theUserDefinedHeaderDataLength[6]
UDHDL:

◆ precomputeValues()

void ossimNitfFileHeaderV2_0::precomputeValues ( )
private

This method will be used to setup information about the file. Example: NITF files have display levels where the lowest number is the back most image and the highes number is the front most image. We are not guranteed that they will be in order in the file so we must parse the file and sort the images. The images include image data, symbols and labels. Each of these are renderable. The lowest display level should have the larges rect and this will be used to send back to the user an image rect. During rasterization we must know the order to draw the data.

◆ print()

std::ostream & ossimNitfFileHeaderV2_0::print ( std::ostream &  out,
const std::string &  prefix = std::string() 
) const
virtual

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

Reimplemented from ossimNitfFileHeader.

Definition at line 600 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfFileHeader::print(), theClassificationAuthority, theCodewords, ossimNitfFileHeaderV2_X::theComplexityLevel, theControlAndHandling, ossimNitfFileHeaderV2_X::theCopyNumber, ossimNitfFileHeaderV2_X::theDateTime, theDowngradingEvent, ossimNitfFileHeaderV2_X::theEncryption, theExtendedHeaderDataLength, theFileLength, ossimNitfFileHeaderV2_X::theFileTitle, ossimNitfFileHeaderV2_X::theFileTypeVersion, theHeaderLength, theNitfDataExtSegInfoRecords, theNitfImageInfoRecords, theNitfLabelInfoRecords, theNitfResExtSegInfoRecords, theNitfSymbolInfoRecords, theNitfTextInfoRecords, ossimNitfFileHeaderV2_X::theNumberOfCopies, theNumberOfDataExtSegInfoRecords, theNumberOfImageInfoRecords, theNumberOfLabelInfoRecords, theNumberOfResExtSegInfoRecords, theNumberOfSymbolInfoRecords, theNumberOfTextFileInfoRecords, ossimNitfFileHeaderV2_X::theOriginatingStationId, theOriginatorsName, theOriginatorsPhone, theReleasingInstructions, ossimNitfFileHeaderV2_X::theSecurityClassification, theSecurityControlNumber, theSecurityDowngrade, ossimNitfFileHeaderV2_X::theSystemType, theUserDefinedHeaderDataLength, and theUserDefinedHeaderOverflow.

602 {
603  out << setiosflags(std::ios::left)
604  << prefix << std::setw(24) << "FHDR:"
605  << theFileTypeVersion << "\n"
606  << prefix << std::setw(24) << "CLEVEL:"
607  << theComplexityLevel << "\n"
608  << prefix << std::setw(24) << "STYPE:"
609  << theSystemType << "\n"
610  << prefix << std::setw(24) << "OSTAID:"
611  << theOriginatingStationId << "\n"
612  << prefix << std::setw(24) << "FDT:"
613  << theDateTime << "\n"
614  << prefix << std::setw(24) << "FTITLE:"
615  << theFileTitle << "\n"
616  << prefix << std::setw(24) << "FSCLAS:"
617  << theSecurityClassification << "\n"
618  << prefix << std::setw(24) << "FSCODE:"
619  << theCodewords << "\n"
620  << prefix << std::setw(24) << "FSCTLH:"
621  << theControlAndHandling << "\n"
622  << prefix << std::setw(24) << "FSREL:"
623  << theReleasingInstructions << "\n"
624  << prefix << std::setw(24) << "FSCAUT:"
625  << theClassificationAuthority << "\n"
626  << prefix << std::setw(24) << "FSCTLN:"
627  << theSecurityControlNumber << "\n"
628  << prefix << std::setw(24) << "FSDWNG:"
629  << theSecurityDowngrade << "\n"
630  << prefix << std::setw(24) << "FSDEVT:"
631  << theDowngradingEvent << "\n"
632  << prefix << std::setw(24) << "FSCOP:"
633  << theCopyNumber << "\n"
634  << prefix << std::setw(24) << "FSCPYS:"
635  << theNumberOfCopies << "\n"
636  << prefix << std::setw(24) << "ENCRYP:"
637  << theEncryption << "\n"
638  << prefix << std::setw(24) << "ONAME:"
639  << theOriginatorsName << "\n"
640  << prefix << std::setw(24) << "OPHONE:"
641  << theOriginatorsPhone << "\n"
642  << prefix << std::setw(24) << "FL:"
643  << theFileLength << "\n"
644  << prefix << std::setw(24) << "HL:"
645  << theHeaderLength << "\n"
646  << prefix << std::setw(24) << "NUMI:"
647  << theNumberOfImageInfoRecords << "\n";
648 
649  ossim_uint32 index;
650 
651  for (index = 0; index < theNitfImageInfoRecords.size(); ++index)
652  {
654  os << std::setw(3) << std::setfill('0') << (index+1) << ":";
655 
656  ossimString tmpStr = "LISH";
657  tmpStr += os.str();
658 
659  out << prefix << std::setw(24) << tmpStr
660  << theNitfImageInfoRecords[index].theImageSubheaderLength << "\n";
661  tmpStr = "LI";
662  tmpStr += os.str();
663 
664  out << prefix << std::setw(24) << tmpStr
665  << theNitfImageInfoRecords[index].theImageLength << "\n";
666  }
667 
668  out << prefix << std::setw(24) << "NUMS:" << theNumberOfSymbolInfoRecords
669  << "\n";
670 
671  for (index = 0; index < theNitfSymbolInfoRecords.size(); ++index)
672  {
674  os << std::setw(3) << std::setfill('0') << (index+1) << ":";
675 
676  ossimString tmpStr = "LSSH";
677  tmpStr += os.str();
678 
679  out << tmpStr
680  << theNitfSymbolInfoRecords[index].theSymbolSubheaderLength << "\n";
681 
682  tmpStr = "LS";
683  tmpStr += os.str();
684 
685  out << tmpStr
686  << theNitfSymbolInfoRecords[index].theSymbolLength << "\n";
687  }
688 
689 
690  out << prefix << std::setw(24) << "NUML:" << theNumberOfLabelInfoRecords
691  << "\n";
692 
693  for (index = 0; index < theNitfLabelInfoRecords.size(); ++index)
694  {
696  os << std::setw(3) << std::setfill('0') << (index+1) << ":";
697 
698  ossimString tmpStr = "LLSH";
699  tmpStr += os.str();
700 
701  out << tmpStr
702  << theNitfLabelInfoRecords[index].theLabelSubheaderLength << "\n";
703 
704  tmpStr = "LL";
705  tmpStr += os.str();
706 
707  out << tmpStr
708  << theNitfLabelInfoRecords[index].theLabelLength << "\n";
709  }
710 
711  out << prefix << std::setw(24) << "NUMT:" << theNumberOfTextFileInfoRecords
712  << "\n";
713 
714  for (index = 0; index < theNitfTextInfoRecords.size(); ++index)
715  {
717  os << std::setw(3) << std::setfill('0') << (index+1) << ":";
718 
719  ossimString tmpStr = "LTSH";
720  tmpStr += os.str();
721 
722  out << prefix << std::setw(24) << tmpStr
723  << theNitfTextInfoRecords[index].theTextSubheaderLength << "\n";
724 
725  tmpStr = "LT";
726  tmpStr += os.str();
727 
728  out << prefix << std::setw(24) << tmpStr
729  << theNitfTextInfoRecords[index].theTextLength<< "\n";
730  }
731 
732  out << prefix << std::setw(24) << "NUMDES:"
734 
735  for (index = 0; index < theNitfDataExtSegInfoRecords.size(); ++index)
736  {
738  os << std::setw(3) << std::setfill('0') << (index+1) << ":";
739 
740  ossimString tmpStr = "LDSH";
741  tmpStr += os.str();
742 
743  out << prefix << std::setw(24) << tmpStr
744  << theNitfDataExtSegInfoRecords[index].theDataExtSegSubheaderLength
745  << "\n";
746 
747  tmpStr = "LD";
748  tmpStr += os.str();
749 
750  out << prefix << std::setw(24) << tmpStr
751  << theNitfDataExtSegInfoRecords[index].theDataExtSegLength << "\n";
752  }
753 
754  out << prefix << std::setw(24) << "NUMRES:"
756 
757  for (index = 0; index < theNitfResExtSegInfoRecords.size(); ++index)
758  {
760  os << std::setw(3) << std::setfill('0') << (index+1) << ":";
761 
762  ossimString tmpStr = "LRSH";
763  tmpStr += os.str();
764 
765  out << tmpStr
766  << theNitfResExtSegInfoRecords[index].theResExtSegSubheaderLength
767  << "\n";
768 
769  tmpStr = "LR";
770  tmpStr += os.str();
771 
772  out << tmpStr
773  << theNitfResExtSegInfoRecords[index].theResExtSegLength
774  << "\n";
775  }
776 
777  out << prefix << std::setw(24) << "UDHDL:"
779  << prefix << std::setw(24) << "UDHOFL:"
781  << prefix << std::setw(24) << "XHDL:"
782  << theExtendedHeaderDataLength << "\n";
783 
784  return ossimNitfFileHeader::print(out, prefix);
785 }
char theComplexityLevel[3]
Field: CLEVEL.
virtual std::ostream & print(std::ostream &out, const std::string &prefix=std::string()) const
Print method that outputs a key/value type format adding prefix to keys.
char theOriginatingStationId[11]
Field: OSTAID.
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35
std::vector< ossimNitfResExtSegInfoRecordV2_0 > theNitfResExtSegInfoRecords
char theFileTypeVersion[10]
Field: FHDR Required field for NITF and is a 9 byte value.
char theNumberOfResExtSegInfoRecords[4]
NUMRES:
std::vector< ossimNitfSymbolInfoRecordV2_0 > theNitfSymbolInfoRecords
std::vector< ossimNitfTextInfoRecordV2_0 > theNitfTextInfoRecords
char theSystemType[5]
Field: STYPE.
char theNumberOfDataExtSegInfoRecords[4]
NUMDES:
std::vector< ossimNitfDataExtSegInfoRecordV2_0 > theNitfDataExtSegInfoRecords
std::vector< ossimNitfLabelInfoRecordV2_0 > theNitfLabelInfoRecords
char theEncryption[2]
Field: ENCRYP.
unsigned int ossim_uint32
char theDateTime[15]
Field: FDT.
char theDowngradingEvent[41]
FSDEVT: This is a conditional field and is a 40 byte Alphanumeric field.
char theNumberOfTextFileInfoRecords[4]
NUMT:
char theCopyNumber[6]
Field: FSCOP.
std::vector< ossimNitfImageInfoRecordV2_0 > theNitfImageInfoRecords
char theFileTitle[81]
Field: FTITLE.
char theSecurityClassification[2]
Field: FSCLAS.
char theNumberOfCopies[6]
Field: FSCOPYS.
char theUserDefinedHeaderDataLength[6]
UDHDL:

◆ readDataExtSegInfoRecords()

void ossimNitfFileHeaderV2_0::readDataExtSegInfoRecords ( ossim::istream in)
private

Definition at line 1467 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfDataExtSegInfoRecordV2_0::theDataExtSegLength, ossimNitfDataExtSegInfoRecordV2_0::theDataExtSegSubheaderLength, theHeaderSize, theNitfDataExtSegInfoRecords, theNumberOfDataExtSegInfoRecords, and ossimString::toInt32().

1468 {
1470  ossim_int32 index;
1471 
1473  for(index=0; index < numberOfDataExtSegs; index++)
1474  {
1476 
1477  in.read(temp.theDataExtSegSubheaderLength, 4);
1478  in.read(temp.theDataExtSegLength, 9);
1479  theHeaderSize+=13;
1480 
1481  temp.theDataExtSegSubheaderLength[4] = '\0';
1482  temp.theDataExtSegLength[9] = '\0';
1483 
1484  theNitfDataExtSegInfoRecords.push_back(temp);
1485  }
1486 }
ossim_int32 toInt32() const
char theNumberOfDataExtSegInfoRecords[4]
NUMDES:
std::vector< ossimNitfDataExtSegInfoRecordV2_0 > theNitfDataExtSegInfoRecords
int ossim_int32

◆ readImageInfoRecords()

void ossimNitfFileHeaderV2_0::readImageInfoRecords ( ossim::istream in)
private

Definition at line 1382 of file ossimNitfFileHeaderV2_0.cpp.

References theHeaderSize, ossimNitfImageInfoRecordV2_0::theImageLength, ossimNitfImageInfoRecordV2_0::theImageSubheaderLength, theNitfImageInfoRecords, theNumberOfImageInfoRecords, and ossimString::toInt32().

1383 {
1385  ossim_int32 index;
1386 
1387  theNitfImageInfoRecords.clear();
1388  for(index=0; index < numberOfImages; index++)
1389  {
1391 
1392  in.read(temp.theImageSubheaderLength, 6);
1393  in.read(temp.theImageLength, 10);
1394  theHeaderSize+=16;
1395  temp.theImageSubheaderLength[6] = '\0';
1396  temp.theImageLength[10] = '\0';
1397 
1398  theNitfImageInfoRecords.push_back(temp);
1399  }
1400 }
ossim_int32 toInt32() const
std::vector< ossimNitfImageInfoRecordV2_0 > theNitfImageInfoRecords
int ossim_int32

◆ readLabelInfoRecords()

void ossimNitfFileHeaderV2_0::readLabelInfoRecords ( ossim::istream in)
private

Definition at line 1425 of file ossimNitfFileHeaderV2_0.cpp.

References theHeaderSize, ossimNitfLabelInfoRecordV2_0::theLabelLength, ossimNitfLabelInfoRecordV2_0::theLabelSubheaderLength, theNitfLabelInfoRecords, theNumberOfLabelInfoRecords, and ossimString::toInt32().

1426 {
1428  ossim_int32 index;
1429 
1430  theNitfLabelInfoRecords.clear();
1431 
1432  for(index=0; index < numberOfLabels; index++)
1433  {
1435 
1436  in.read(temp.theLabelSubheaderLength, 4);
1437  in.read(temp.theLabelLength, 3);
1438  theHeaderSize+=7;
1439  temp.theLabelSubheaderLength[4] = '\0';
1440  temp.theLabelLength[3] = '\0';
1441 
1442  theNitfLabelInfoRecords.push_back(temp);
1443  }
1444 }
ossim_int32 toInt32() const
std::vector< ossimNitfLabelInfoRecordV2_0 > theNitfLabelInfoRecords
int ossim_int32

◆ readOverflowTags()

void ossimNitfFileHeaderV2_0::readOverflowTags ( ossim::istream in)
private

If the header was parsed and the offsets have been initialized, this method will parse all overflow tags and put them into theTagList.

Definition at line 395 of file ossimNitfFileHeaderV2_0.cpp.

References getNewDataExtensionSegment(), ossimNitfDataExtensionSegment::getTagList(), theExtendedHeaderOverflow, ossimNitfFileHeader::theTagList, theUserDefinedHeaderOverflow, ossimString::toInt32(), and ossimRefPtr< T >::valid().

396 {
398  if (overflow != 0)
399  {
401  if (des.valid())
402  {
403  const vector<ossimNitfTagInformation> &desTags = des->getTagList();
404  for (vector<ossimNitfTagInformation>::const_iterator iter = desTags.begin();
405  iter != desTags.end();
406  ++iter)
407  {
408  iter->setTagType("UDHD");
409  theTagList.push_back(*iter);
410  }
411  des = 0;
412  }
413  }
414 
416  if (overflow != 0)
417  {
419  if (des.valid())
420  {
421  const vector<ossimNitfTagInformation> &desTags = des->getTagList();
422  for (vector<ossimNitfTagInformation>::const_iterator iter = desTags.begin(); iter != desTags.end(); ++iter)
423  {
424  iter->setTagType("XHD");
425  theTagList.push_back(*iter);
426  }
427  des = 0;
428 
429  }
430  }
431 }
bool valid() const
Definition: ossimRefPtr.h:75
virtual ossimNitfDataExtensionSegment * getNewDataExtensionSegment(ossim_int32 dataExtNumber, ossim::istream &in) const
std::vector< ossimNitfTagInformation > theTagList
ossim_int32 toInt32() const
virtual const std::vector< ossimNitfTagInformation > & getTagList() const =0
int ossim_int32

◆ readResExtSegInfoRecords()

void ossimNitfFileHeaderV2_0::readResExtSegInfoRecords ( ossim::istream in)
private

Definition at line 1488 of file ossimNitfFileHeaderV2_0.cpp.

References theHeaderSize, theNitfResExtSegInfoRecords, theNumberOfResExtSegInfoRecords, ossimNitfResExtSegInfoRecordV2_0::theResExtSegLength, ossimNitfResExtSegInfoRecordV2_0::theResExtSegSubheaderLength, and ossimString::toInt32().

1489 {
1491  ossim_int32 index;
1492 
1494  for(index=0; index < numberOfResExtSegs; index++)
1495  {
1497 
1498  in.read(temp.theResExtSegSubheaderLength, 4);
1499  in.read(temp.theResExtSegLength, 7);
1500  theHeaderSize+=11;
1501 
1502  temp.theResExtSegSubheaderLength[4] = '\0';
1503  temp.theResExtSegLength[7] = '\0';
1504 
1505  theNitfResExtSegInfoRecords.push_back(temp);
1506  }
1507 }
std::vector< ossimNitfResExtSegInfoRecordV2_0 > theNitfResExtSegInfoRecords
char theNumberOfResExtSegInfoRecords[4]
NUMRES:
ossim_int32 toInt32() const
int ossim_int32

◆ readSymbolInfoRecords()

void ossimNitfFileHeaderV2_0::readSymbolInfoRecords ( ossim::istream in)
private

Definition at line 1402 of file ossimNitfFileHeaderV2_0.cpp.

References theHeaderSize, theNitfSymbolInfoRecords, theNumberOfSymbolInfoRecords, ossimNitfSymbolInfoRecordV2_0::theSymbolLength, ossimNitfSymbolInfoRecordV2_0::theSymbolSubheaderLength, and ossimString::toInt32().

1403 {
1405  ossim_int32 index;
1406 
1407  theNitfSymbolInfoRecords.clear();
1408 
1409  for(index=0; index < numberOfSymbols; index++)
1410  {
1412 
1413 
1414  in.read(temp.theSymbolSubheaderLength, 4);
1415  in.read(temp.theSymbolLength, 6);
1416  theHeaderSize+=10;
1417 
1418  temp.theSymbolSubheaderLength[4] = '\0';
1419  temp.theSymbolLength[6] = '\0';
1420 
1421  theNitfSymbolInfoRecords.push_back(temp);
1422  }
1423 }
std::vector< ossimNitfSymbolInfoRecordV2_0 > theNitfSymbolInfoRecords
ossim_int32 toInt32() const
int ossim_int32

◆ readTextFileInfoRecords()

void ossimNitfFileHeaderV2_0::readTextFileInfoRecords ( ossim::istream in)
private

Definition at line 1446 of file ossimNitfFileHeaderV2_0.cpp.

References theHeaderSize, theNitfTextInfoRecords, theNumberOfTextFileInfoRecords, ossimNitfTextInfoRecordV2_0::theTextLength, ossimNitfTextInfoRecordV2_0::theTextSubheaderLength, and ossimString::toInt32().

1447 {
1449  ossim_int32 index;
1450 
1451  theNitfTextInfoRecords.clear();
1452  for(index=0; index < numberOfTextFiles; index++)
1453  {
1455 
1456  in.read(temp.theTextSubheaderLength, 4);
1457  in.read(temp.theTextLength, 5);
1458  theHeaderSize+=9;
1459 
1460  temp.theTextSubheaderLength[4] = '\0';
1461  temp.theTextLength[5] = '\0';
1462 
1463  theNitfTextInfoRecords.push_back(temp);
1464  }
1465 }
std::vector< ossimNitfTextInfoRecordV2_0 > theNitfTextInfoRecords
ossim_int32 toInt32() const
char theNumberOfTextFileInfoRecords[4]
NUMT:
int ossim_int32

◆ replaceImageInfoRecord()

void ossimNitfFileHeaderV2_0::replaceImageInfoRecord ( ossim_uint32  i,
const ossimNitfImageInfoRecordV2_0 recordInfo 
)
virtual

Definition at line 964 of file ossimNitfFileHeaderV2_0.cpp.

References theNitfImageInfoRecords.

Referenced by ossimNitf20Writer::writeBlockBandSeparate(), and ossimNitf20Writer::writeBlockBandSequential().

965 {
966  theNitfImageInfoRecords[i]=recordInfo;
967 }
std::vector< ossimNitfImageInfoRecordV2_0 > theNitfImageInfoRecords

◆ saveState()

bool ossimNitfFileHeaderV2_0::saveState ( ossimKeywordlist kwl,
const ossimString prefix = "" 
) const
virtual

Reimplemented from ossimNitfFileHeader.

Definition at line 788 of file ossimNitfFileHeaderV2_0.cpp.

References ossimKeywordlist::add(), ossimNitfFileHeaderV2_X::saveState(), theClassificationAuthority, theCodewords, theControlAndHandling, theDowngradingEvent, theExtendedHeaderDataLength, theFileLength, theHeaderLength, theNitfDataExtSegInfoRecords, theNitfImageInfoRecords, theNitfLabelInfoRecords, theNitfResExtSegInfoRecords, theNitfSymbolInfoRecords, theNitfTextInfoRecords, theNumberOfDataExtSegInfoRecords, theNumberOfImageInfoRecords, theNumberOfLabelInfoRecords, theNumberOfResExtSegInfoRecords, theNumberOfSymbolInfoRecords, theNumberOfTextFileInfoRecords, theOriginatorsName, theOriginatorsPhone, theReleasingInstructions, theSecurityControlNumber, theSecurityDowngrade, and theUserDefinedHeaderDataLength.

789 {
790  bool result = ossimNitfFileHeaderV2_X::saveState(kwl, prefix);
791 
792  if(result)
793  {
794  kwl.add(prefix, "FSCODE",theCodewords);
795  kwl.add(prefix, "FSCTLH",theControlAndHandling);
796  kwl.add(prefix, "FSREL",theReleasingInstructions);
797  kwl.add(prefix, "FSCAUT",theClassificationAuthority);
798  kwl.add(prefix, "FSCTLN",theSecurityControlNumber);
799  kwl.add(prefix, "FSDWNG",theSecurityDowngrade);
800  kwl.add(prefix, "FSDEVT",theDowngradingEvent);
801  kwl.add(prefix, "ONAME",theOriginatorsName);
802  kwl.add(prefix, "OPHONE",theOriginatorsPhone);
803  kwl.add(prefix, "FL",theFileLength);
804  kwl.add(prefix, "HL",theHeaderLength);
805  kwl.add(prefix, "NUMI",theNumberOfImageInfoRecords);
806  kwl.add(prefix, "UDHDL",theUserDefinedHeaderDataLength);
807  kwl.add(prefix, "UDHOFL",theUserDefinedHeaderDataLength);
808  kwl.add(prefix, "XHDL",theExtendedHeaderDataLength);
809 
810  std::ostringstream out;
811  ossim_uint32 index;
812  for (index = 0; index < theNitfImageInfoRecords.size(); ++index)
813  {
815  os << std::setw(3) << std::setfill('0') << (index+1) << ":";
816 
817  ossimString tmpStr = "LISH";
818  tmpStr += os.str();
819 
820  out << tmpStr
821  << theNitfImageInfoRecords[index].theImageSubheaderLength << "\n";
822  tmpStr = "LI";
823  tmpStr += os.str();
824 
825  out << tmpStr
826  << theNitfImageInfoRecords[index].theImageLength << "\n";
827  }
828 
829  out <<"NUMS:" << theNumberOfSymbolInfoRecords
830  << "\n";
831 
832  for (index = 0; index < theNitfSymbolInfoRecords.size(); ++index)
833  {
835  os << std::setw(3) << std::setfill('0') << (index+1) << ":";
836 
837  ossimString tmpStr = "LSSH";
838  tmpStr += os.str();
839 
840  out << tmpStr
841  << theNitfSymbolInfoRecords[index].theSymbolSubheaderLength << "\n";
842 
843  tmpStr = "LS";
844  tmpStr += os.str();
845 
846  out << tmpStr
847  << theNitfSymbolInfoRecords[index].theSymbolLength << "\n";
848  }
849 
850 
851  out << "NUML:" << theNumberOfLabelInfoRecords
852  << "\n";
853 
854  for (index = 0; index < theNitfLabelInfoRecords.size(); ++index)
855  {
857  os << std::setw(3) << std::setfill('0') << (index+1) << ":";
858 
859  ossimString tmpStr = "LLSH";
860  tmpStr += os.str();
861 
862  out << tmpStr
863  << theNitfLabelInfoRecords[index].theLabelSubheaderLength << "\n";
864 
865  tmpStr = "LL";
866  tmpStr += os.str();
867 
868  out << tmpStr
869  << theNitfLabelInfoRecords[index].theLabelLength << "\n";
870  }
871 
872  out << "NUMT:" << theNumberOfTextFileInfoRecords
873  << "\n";
874 
875  for (index = 0; index < theNitfTextInfoRecords.size(); ++index)
876  {
878  os << std::setw(3) << std::setfill('0') << (index+1) << ":";
879 
880  ossimString tmpStr = "LTSH";
881  tmpStr += os.str();
882 
883  out << tmpStr
884  << theNitfTextInfoRecords[index].theTextSubheaderLength << "\n";
885 
886  tmpStr = "LT";
887  tmpStr += os.str();
888 
889  out << tmpStr
890  << theNitfTextInfoRecords[index].theTextLength<< "\n";
891  }
892 
893  out << "NUMDES:"
895 
896  for (index = 0; index < theNitfDataExtSegInfoRecords.size(); ++index)
897  {
899  os << std::setw(3) << std::setfill('0') << (index+1) << ":";
900 
901  ossimString tmpStr = "LDSH";
902  tmpStr += os.str();
903 
904  out << tmpStr
905  << theNitfDataExtSegInfoRecords[index].theDataExtSegSubheaderLength
906  << "\n";
907 
908  tmpStr = "LD";
909  tmpStr += os.str();
910 
911  out << tmpStr
912  << theNitfDataExtSegInfoRecords[index].theDataExtSegLength << "\n";
913  }
914 
915  out << "NUMRES:"
917 
918  for (index = 0; index < theNitfResExtSegInfoRecords.size(); ++index)
919  {
921  os << std::setw(3) << std::setfill('0') << (index+1) << ":";
922 
923  ossimString tmpStr = "LRSH";
924  tmpStr += os.str();
925 
926  out << tmpStr
927  << theNitfResExtSegInfoRecords[index].theResExtSegSubheaderLength
928  << "\n";
929 
930  tmpStr = "LR";
931  tmpStr += os.str();
932 
933  out << tmpStr
934  << theNitfResExtSegInfoRecords[index].theResExtSegLength
935  << "\n";
936  }
937 
938  {
939  std::istringstream in(out.str());
940  ossimKeywordlist tempKwl;
941  if(tempKwl.parseStream(in))
942  {
943  result = true;
944  kwl.add(prefix, tempKwl);
945  }
946  }
947  }
948 
949  return result;
950 }
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35
std::vector< ossimNitfResExtSegInfoRecordV2_0 > theNitfResExtSegInfoRecords
Represents serializable keyword/value map.
char theNumberOfResExtSegInfoRecords[4]
NUMRES:
std::vector< ossimNitfSymbolInfoRecordV2_0 > theNitfSymbolInfoRecords
std::vector< ossimNitfTextInfoRecordV2_0 > theNitfTextInfoRecords
char theNumberOfDataExtSegInfoRecords[4]
NUMDES:
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
std::vector< ossimNitfDataExtSegInfoRecordV2_0 > theNitfDataExtSegInfoRecords
std::vector< ossimNitfLabelInfoRecordV2_0 > theNitfLabelInfoRecords
unsigned int ossim_uint32
char theDowngradingEvent[41]
FSDEVT: This is a conditional field and is a 40 byte Alphanumeric field.
char theNumberOfTextFileInfoRecords[4]
NUMT:
std::vector< ossimNitfImageInfoRecordV2_0 > theNitfImageInfoRecords
std::basic_istringstream< char > istringstream
Class for char input memory streams.
Definition: ossimIosFwd.h:32
bool saveState(ossimKeywordlist &kwl, const ossimString &prefix="") const
char theUserDefinedHeaderDataLength[6]
UDHDL:

◆ setClassificationAuthority()

void ossimNitfFileHeaderV2_0::setClassificationAuthority ( const ossimString classAuth)
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1529 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfCommon::setField(), and theClassificationAuthority.

1530 {
1532 }
static void setField(void *fieldDestination, const ossimString &src, std::streamsize width, std::ios_base::fmtflags ioflags=std::ios::left, char fill=' ')
Sets a field with a given string, width, and IOS flags.

◆ setCodeWords()

void ossimNitfFileHeaderV2_0::setCodeWords ( const ossimString codeWords)
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1514 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfCommon::setField(), and theCodewords.

1515 {
1516  ossimNitfCommon::setField(theCodewords, codeWords, 40);
1517 }
static void setField(void *fieldDestination, const ossimString &src, std::streamsize width, std::ios_base::fmtflags ioflags=std::ios::left, char fill=' ')
Sets a field with a given string, width, and IOS flags.

◆ setComplianceLevel()

void ossimNitfFileHeaderV2_0::setComplianceLevel ( const ossimString complianceLevel)

Definition at line 1509 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfCommon::setField(), and ossimNitfFileHeaderV2_X::theComplexityLevel.

Referenced by setProperty().

1510 {
1511  ossimNitfCommon::setField(theComplexityLevel, complianceLevel, 2);
1512 }
char theComplexityLevel[3]
Field: CLEVEL.
static void setField(void *fieldDestination, const ossimString &src, std::streamsize width, std::ios_base::fmtflags ioflags=std::ios::left, char fill=' ')
Sets a field with a given string, width, and IOS flags.

◆ setControlAndHandling()

void ossimNitfFileHeaderV2_0::setControlAndHandling ( const ossimString controlAndHandling)
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1519 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfCommon::setField(), and theControlAndHandling.

1520 {
1521  ossimNitfCommon::setField(theControlAndHandling, controlAndHandling, 40);
1522 }
static void setField(void *fieldDestination, const ossimString &src, std::streamsize width, std::ios_base::fmtflags ioflags=std::ios::left, char fill=' ')
Sets a field with a given string, width, and IOS flags.

◆ setDowngradingEvent()

void ossimNitfFileHeaderV2_0::setDowngradingEvent ( const ossimString downgradeEvent)

Definition at line 1554 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfCommon::setField(), and theDowngradingEvent.

Referenced by setProperty().

1555 {
1556  ossimNitfCommon::setField(theDowngradingEvent, downgradeEvent, 40);
1557 }
char theDowngradingEvent[41]
FSDEVT: This is a conditional field and is a 40 byte Alphanumeric field.
static void setField(void *fieldDestination, const ossimString &src, std::streamsize width, std::ios_base::fmtflags ioflags=std::ios::left, char fill=' ')
Sets a field with a given string, width, and IOS flags.

◆ setFileLength()

void ossimNitfFileHeaderV2_0::setFileLength ( ossim_uint64  fileLength)
virtual

Sets file length (FL) field.

Implements ossimNitfFileHeader.

Definition at line 1559 of file ossimNitfFileHeaderV2_0.cpp.

References theFileLength.

Referenced by ossimNitf20Writer::writeBlockBandSeparate(), and ossimNitf20Writer::writeBlockBandSequential().

1560 {
1561  std::ostringstream out;
1562 
1563  out << std::setw(12)
1564  << std::setfill('0')
1565  << std::setiosflags(ios::right)
1566  << fileLength;
1567 
1568  memcpy(theFileLength, out.str().c_str(), 12);
1569 }
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35

◆ setHeaderLength()

void ossimNitfFileHeaderV2_0::setHeaderLength ( ossim_uint64  headerLength)
virtual

Sets header length (HL) field.

Implements ossimNitfFileHeader.

Definition at line 1571 of file ossimNitfFileHeaderV2_0.cpp.

References theHeaderLength.

Referenced by ossimNitf20Writer::writeBlockBandSeparate(), and ossimNitf20Writer::writeBlockBandSequential().

1572 {
1573  std::ostringstream out;
1574 
1575  out << std::setw(6)
1576  << std::setfill('0')
1577  << std::setiosflags(ios::right)
1578  << headerLength;
1579 
1580  memcpy(theHeaderLength, out.str().c_str(), 6);
1581 }
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35

◆ setNumberOfImageInfoRecords()

void ossimNitfFileHeaderV2_0::setNumberOfImageInfoRecords ( ossim_uint64  num)
private

Sets the number of image records in the NITF 2.0 File Header.

Parameters
numThe number of image records for the entire NITF 2.0 file.
Exceptions
std::out_of_range

Definition at line 1357 of file ossimNitfFileHeaderV2_0.cpp.

References theNumberOfImageInfoRecords.

Referenced by addImageInfoRecord().

1358 {
1359  if (num < 1000)
1360  {
1361  std::ostringstream out;
1362 
1363  out << std::setw(3)
1364  << std::setfill('0')
1365  << std::setiosflags(ios::right)
1366  << num;
1367 
1368  memcpy(theNumberOfImageInfoRecords, out.str().c_str(), 3);
1369  }
1370  else
1371  {
1372  std::string s = "ossimNitfFileHeaderV2_0::setNumberOfImageInfoRecords:";
1373  s += " ERROR\nExceeded max image info number of 999!";
1374  if (traceDebug())
1375  {
1376  ossimNotify(ossimNotifyLevel_WARN) << s << std::endl;
1377  }
1378  throw std::out_of_range(s);
1379  }
1380 }
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ setOriginatorsName()

void ossimNitfFileHeaderV2_0::setOriginatorsName ( const ossimString originatorName)
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1539 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfCommon::setField(), and theOriginatorsName.

Referenced by setProperty().

1540 {
1541  ossimNitfCommon::setField(theOriginatorsName, originatorName, 27);
1542 }
static void setField(void *fieldDestination, const ossimString &src, std::streamsize width, std::ios_base::fmtflags ioflags=std::ios::left, char fill=' ')
Sets a field with a given string, width, and IOS flags.

◆ setOriginatorsPhone()

void ossimNitfFileHeaderV2_0::setOriginatorsPhone ( const ossimString origniatorPhone)
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1544 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfCommon::setField(), and theOriginatorsPhone.

Referenced by setProperty().

1545 {
1546  ossimNitfCommon::setField(theOriginatorsPhone, originatorPhone, 18);
1547 }
static void setField(void *fieldDestination, const ossimString &src, std::streamsize width, std::ios_base::fmtflags ioflags=std::ios::left, char fill=' ')
Sets a field with a given string, width, and IOS flags.

◆ setProperty()

void ossimNitfFileHeaderV2_0::setProperty ( ossimRefPtr< ossimProperty property)
virtual

Reimplemented from ossimNitfFileHeaderV2_X.

Definition at line 1633 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfFileHeaderV2_X::CLEVEL_KW, FSDEVT_KW, FSDWNG_KW, ossimNitfFileHeaderV2_X::ONAME_KW, ossimNitfFileHeaderV2_X::OPHONE_KW, setComplianceLevel(), setDowngradingEvent(), setOriginatorsName(), setOriginatorsPhone(), ossimNitfFileHeaderV2_X::setProperty(), setSecurityDowngrade(), and ossimProperty::valueToString().

Referenced by ossimNitf20Writer::setProperty().

1634 {
1635  const ossimString& name = property->getName();
1636  if(name == CLEVEL_KW)
1637  {
1638  setComplianceLevel(property->valueToString());
1639  }
1640  else if(name == FSDWNG_KW)
1641  {
1642  setSecurityDowngrade(property->valueToString());
1643  }
1644  else if(name == FSDEVT_KW)
1645  {
1646  setDowngradingEvent(property->valueToString());
1647  }
1648  else if(name == ONAME_KW)
1649  {
1650  setOriginatorsName(property->valueToString());
1651  }
1652  else if(name == OPHONE_KW)
1653  {
1654  setOriginatorsPhone(property->valueToString());
1655  }
1656  else
1657  {
1659  }
1660 }
virtual void valueToString(ossimString &valueResult) const =0
void setComplianceLevel(const ossimString &complianceLevel)
static const ossimString ONAME_KW
static const ossimString FSDWNG_KW
Properties of a NITF 2.0 Header file.
virtual void setOriginatorsPhone(const ossimString &origniatorPhone)
virtual void setOriginatorsName(const ossimString &originatorName)
void setDowngradingEvent(const ossimString &downgradeEvent)
static const ossimString CLEVEL_KW
static const ossimString OPHONE_KW
void setSecurityDowngrade(const ossimString &securityDowngrade)
static const ossimString FSDEVT_KW
virtual void setProperty(ossimRefPtr< ossimProperty > property)

◆ setReleasingInstructions()

void ossimNitfFileHeaderV2_0::setReleasingInstructions ( const ossimString releasingInstructions)
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1524 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfCommon::setField(), and theReleasingInstructions.

1525 {
1526  ossimNitfCommon::setField(theReleasingInstructions, releasingInstructions, 40);
1527 }
static void setField(void *fieldDestination, const ossimString &src, std::streamsize width, std::ios_base::fmtflags ioflags=std::ios::left, char fill=' ')
Sets a field with a given string, width, and IOS flags.

◆ setSecurityControlNumber()

void ossimNitfFileHeaderV2_0::setSecurityControlNumber ( const ossimString controlNo)
virtual

Implements ossimNitfFileHeaderV2_X.

Definition at line 1534 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfCommon::setField(), and theSecurityControlNumber.

1535 {
1537 }
static void setField(void *fieldDestination, const ossimString &src, std::streamsize width, std::ios_base::fmtflags ioflags=std::ios::left, char fill=' ')
Sets a field with a given string, width, and IOS flags.

◆ setSecurityDowngrade()

void ossimNitfFileHeaderV2_0::setSecurityDowngrade ( const ossimString securityDowngrade)

Definition at line 1549 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfCommon::setField(), and theSecurityDowngrade.

Referenced by setProperty().

1550 {
1551  ossimNitfCommon::setField(theSecurityDowngrade, securityDowngrade, 6);
1552 }
static void setField(void *fieldDestination, const ossimString &src, std::streamsize width, std::ios_base::fmtflags ioflags=std::ios::left, char fill=' ')
Sets a field with a given string, width, and IOS flags.

◆ writeStream()

void ossimNitfFileHeaderV2_0::writeStream ( ossim::ostream out)
virtual

Implements ossimNitfFileHeader.

Definition at line 433 of file ossimNitfFileHeaderV2_0.cpp.

References ossimNitfFileHeader::getTotalTagLength(), ossimNotify(), ossimNotifyLevel_WARN, theClassificationAuthority, theCodewords, ossimNitfFileHeaderV2_X::theComplexityLevel, theControlAndHandling, ossimNitfFileHeaderV2_X::theCopyNumber, ossimNitfFileHeaderV2_X::theDateTime, theDowngradingEvent, ossimNitfFileHeaderV2_X::theEncryption, theExtendedHeaderDataLength, theExtendedHeaderOverflow, theFileLength, ossimNitfFileHeaderV2_X::theFileTitle, ossimNitfFileHeaderV2_X::theFileTypeVersion, theHeaderLength, theNitfDataExtSegInfoRecords, theNitfImageInfoRecords, theNitfLabelInfoRecords, theNitfResExtSegInfoRecords, theNitfSymbolInfoRecords, theNitfTextInfoRecords, ossimNitfFileHeaderV2_X::theNumberOfCopies, ossimNitfFileHeaderV2_X::theOriginatingStationId, theOriginatorsName, theOriginatorsPhone, theReleasingInstructions, ossimNitfFileHeaderV2_X::theSecurityClassification, theSecurityControlNumber, theSecurityDowngrade, ossimNitfFileHeaderV2_X::theSystemType, ossimNitfFileHeader::theTagList, theUserDefinedHeaderDataLength, and theUserDefinedHeaderOverflow.

Referenced by ossimNitf20Writer::writeBlockBandSeparate(), and ossimNitf20Writer::writeBlockBandSequential().

434 {
435  // identification and origination group
436  out.write(theFileTypeVersion, 9);
437  out.write(theComplexityLevel, 2);
438  out.write(theSystemType, 4);
439  out.write(theOriginatingStationId, 10);
440  out.write(theDateTime, 14);
441  out.write(theFileTitle, 80);
442 
443  // read security group
444  out.write(theSecurityClassification, 1);
445  out.write(theCodewords, 40);
446  out.write(theControlAndHandling, 40);
447  out.write(theReleasingInstructions, 40);
448  out.write(theClassificationAuthority, 20);
449  out.write(theSecurityControlNumber, 20);
450  out.write(theSecurityDowngrade, 6);
451  if(ossimString(theSecurityDowngrade) == "999998")
452  {
453  out.write(theDowngradingEvent, 40);
454  }
455  out.write(theCopyNumber, 5);
456  out.write(theNumberOfCopies, 5);
457  out.write(theEncryption, 1);
458  out.write(theOriginatorsName, 27);
459  out.write(theOriginatorsPhone, 18);
460 
461  out.write(theFileLength, 12);
462  out.write(theHeaderLength, 6);
463  ossim_uint32 idx = 0;
464  {
465  std::ostringstream outString;
466 
467  outString << std::setw(3)
468  << std::setfill('0')
469  << std::setiosflags(ios::right)
470  << theNitfImageInfoRecords.size();
471 
472  out.write(outString.str().c_str(), 3);
473 
474  for(idx = 0; idx < theNitfImageInfoRecords.size(); ++idx)
475  {
476  out.write(theNitfImageInfoRecords[idx].theImageSubheaderLength, 6);
477  out.write(theNitfImageInfoRecords[idx].theImageLength, 10);
478  }
479  }
480  {
481  std::ostringstream outString;
482 
483  outString << std::setw(3)
484  << std::setfill('0')
485  << std::setiosflags(ios::right)
486  << theNitfSymbolInfoRecords.size();
487 
488  out.write(outString.str().c_str(), 3);
489 
490  for(idx = 0; idx < theNitfSymbolInfoRecords.size(); ++idx)
491  {
492  out.write(theNitfSymbolInfoRecords[idx].theSymbolSubheaderLength, 4);
493  out.write(theNitfSymbolInfoRecords[idx].theSymbolLength, 6);
494  }
495  }
496  {
497  std::ostringstream outString;
498 
499  outString << std::setw(3)
500  << std::setfill('0')
501  << std::setiosflags(ios::right)
502  << theNitfLabelInfoRecords.size();
503 
504  out.write(outString.str().c_str(), 3);
505 
506  for(idx = 0; idx < theNitfLabelInfoRecords.size(); ++idx)
507  {
508  out.write(theNitfLabelInfoRecords[idx].theLabelSubheaderLength, 4);
509  out.write(theNitfLabelInfoRecords[idx].theLabelLength, 3);
510  }
511  }
512  {
513  std::ostringstream outString;
514 
515  outString << std::setw(3)
516  << std::setfill('0')
517  << std::setiosflags(ios::right)
518  << theNitfTextInfoRecords.size();
519 
520  out.write(outString.str().c_str(), 3);
521 
522  for(idx = 0; idx < theNitfTextInfoRecords.size(); ++idx)
523  {
524  out.write(theNitfTextInfoRecords[idx].theTextSubheaderLength, 4);
525  out.write(theNitfTextInfoRecords[idx].theTextLength, 5);
526  }
527  }
528  {
529  std::ostringstream outString;
530 
531  outString << std::setw(3)
532  << std::setfill('0')
533  << std::setiosflags(ios::right)
535 
536  out.write(outString.str().c_str(), 3);
537 
538  for(idx = 0; idx < theNitfDataExtSegInfoRecords.size(); ++idx)
539  {
540  out.write(theNitfDataExtSegInfoRecords[idx].theDataExtSegSubheaderLength, 4);
541  out.write(theNitfDataExtSegInfoRecords[idx].theDataExtSegLength, 9);
542  }
543  }
544  {
545  std::ostringstream outString;
546 
547  outString << std::setw(3)
548  << std::setfill('0')
549  << std::setiosflags(ios::right)
550  << theNitfResExtSegInfoRecords.size();
551 
552  out.write(outString.str().c_str(), 3);
553 
554  for(idx = 0; idx < theNitfResExtSegInfoRecords.size(); ++idx)
555  {
556  out.write(theNitfResExtSegInfoRecords[idx].theResExtSegSubheaderLength, 4);
557  out.write(theNitfResExtSegInfoRecords[idx].theResExtSegLength, 7);
558  }
559  }
560  out.write(theUserDefinedHeaderDataLength, 5);
562  {
563  out.write(theUserDefinedHeaderOverflow, 3);
564  }
565  ossim_uint32 totalLength = getTotalTagLength();
566  if(totalLength <= 99999)
567  {
568  std::ostringstream tempOut;
569 
570  tempOut << std::setw(5)
571  << std::setfill('0')
572  << std::setiosflags(ios::right)
573  << totalLength;
574 
575  memcpy(theExtendedHeaderDataLength, tempOut.str().c_str(), 5);
576 
577  out.write(theExtendedHeaderDataLength, 5);
578 
579  // for now we hard code te 000 for we do not currently support writing to the DES if the total tag length is
580  // larger than supported
581  //
582  memset(theExtendedHeaderOverflow, '0', 3);
583  if(totalLength > 0)
584  {
585  ossim_uint32 i = 0;
586  out.write(theExtendedHeaderOverflow, 3);
587 
588  for(i = 0; i < theTagList.size(); ++i)
589  {
590  theTagList[i].writeStream(out);
591  }
592  }
593  }
594  else
595  {
596  ossimNotify(ossimNotifyLevel_WARN) << "WARNING ossimNitfFileHeaderV2_0::writeStream: Only support writing of total tag length < 99999" << std::endl;
597  }
598 }
char theComplexityLevel[3]
Field: CLEVEL.
char theOriginatingStationId[11]
Field: OSTAID.
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35
std::vector< ossimNitfResExtSegInfoRecordV2_0 > theNitfResExtSegInfoRecords
char theFileTypeVersion[10]
Field: FHDR Required field for NITF and is a 9 byte value.
std::vector< ossimNitfSymbolInfoRecordV2_0 > theNitfSymbolInfoRecords
std::vector< ossimNitfTextInfoRecordV2_0 > theNitfTextInfoRecords
char theSystemType[5]
Field: STYPE.
std::vector< ossimNitfTagInformation > theTagList
virtual ossim_uint32 getTotalTagLength() const
std::vector< ossimNitfDataExtSegInfoRecordV2_0 > theNitfDataExtSegInfoRecords
std::vector< ossimNitfLabelInfoRecordV2_0 > theNitfLabelInfoRecords
char theEncryption[2]
Field: ENCRYP.
unsigned int ossim_uint32
char theDateTime[15]
Field: FDT.
char theDowngradingEvent[41]
FSDEVT: This is a conditional field and is a 40 byte Alphanumeric field.
char theCopyNumber[6]
Field: FSCOP.
std::vector< ossimNitfImageInfoRecordV2_0 > theNitfImageInfoRecords
char theFileTitle[81]
Field: FTITLE.
char theSecurityClassification[2]
Field: FSCLAS.
char theNumberOfCopies[6]
Field: FSCOPYS.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
char theUserDefinedHeaderDataLength[6]
UDHDL:

Member Data Documentation

◆ FSDEVT_KW

const ossimString ossimNitfFileHeaderV2_0::FSDEVT_KW = "fsdevt"
static

Definition at line 244 of file ossimNitfFileHeaderV2_0.h.

Referenced by getProperty(), and setProperty().

◆ FSDWNG_KW

const ossimString ossimNitfFileHeaderV2_0::FSDWNG_KW = "fsdwng"
static

Properties of a NITF 2.0 Header file.

See MIL-STD-2500A for details.

To access these, pass the constant to getProperty().

Definition at line 243 of file ossimNitfFileHeaderV2_0.h.

Referenced by getProperty(), and setProperty().

◆ theClassificationAuthority

char ossimNitfFileHeaderV2_0::theClassificationAuthority[21]
private

FSCAUT: This is a 20 byte alphanumeric field.

Definition at line 430 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getClassificationAuthority(), print(), saveState(), setClassificationAuthority(), and writeStream().

◆ theCodewords

char ossimNitfFileHeaderV2_0::theCodewords[41]
private

FSCODE: This is a 40 byte Alphanumeric field

Definition at line 415 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getCodeWords(), print(), saveState(), setCodeWords(), and writeStream().

◆ theControlAndHandling

char ossimNitfFileHeaderV2_0::theControlAndHandling[41]
private

FSCTLH: This is a 40 byte Alphanumeric field.

Definition at line 420 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getControlAndHandling(), print(), saveState(), setControlAndHandling(), and writeStream().

◆ theDataExtSegOffsetList

std::vector<ossimNitfDataExtSegOffsetInformation> ossimNitfFileHeaderV2_0::theDataExtSegOffsetList
private

This will hold pre-coputed offsets to the start of all the data extension segments.

Definition at line 395 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getNewDataExtensionSegment(), and initializeAllOffsets().

◆ theDisplayInformationList

std::vector<ossimNitfDisplayInfo> ossimNitfFileHeaderV2_0::theDisplayInformationList
private

This will hold some pre-computed information about the display order of the images. It will be populated by scanning the file and sorting display levels.

Definition at line 365 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), initializeDisplayLevels(), and insertIntoDisplayInfoList().

◆ theDowngradingEvent

char ossimNitfFileHeaderV2_0::theDowngradingEvent[41]
private

FSDEVT: This is a conditional field and is a 40 byte Alphanumeric field.

This field exists if the security downgrade is 999998.

Definition at line 462 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getDowngradingEvent(), getProperty(), print(), saveState(), setDowngradingEvent(), and writeStream().

◆ theExtendedHeaderDataLength

char ossimNitfFileHeaderV2_0::theExtendedHeaderDataLength[6]
private

XHDL:

This is a required field. It is 5 bytes long and ranges from 0-99999. 0 means there is no data

Definition at line 609 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), print(), saveState(), and writeStream().

◆ theExtendedHeaderOverflow

char ossimNitfFileHeaderV2_0::theExtendedHeaderOverflow[4]
private

This is a required field. It is 5 bytes long and ranges from 0-99999. 0 means there is no data

Definition at line 615 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), readOverflowTags(), and writeStream().

◆ theFileLength

char ossimNitfFileHeaderV2_0::theFileLength[13]
private

FL:

This is a required field.

Is a 12 byte number of the form 000000000388-999999999998 indicates the file length and a value of 999999999999 indicates that the file length was not available.

Definition at line 488 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getFileSize(), print(), saveState(), setFileLength(), and writeStream().

◆ theFilename

ossimFilename ossimNitfFileHeaderV2_0::theFilename
private

This is the current file we are operating on.

Definition at line 351 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields().

◆ theHeaderLength

char ossimNitfFileHeaderV2_0::theHeaderLength[7]
private

HL:

This is a reqired field.

Will hold the header length. The values range up to 999998 and a value of 999999 indicates that the length of the header was not available upon creation.

Definition at line 500 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), print(), saveState(), setHeaderLength(), and writeStream().

◆ theHeaderSize

ossim_int32 ossimNitfFileHeaderV2_0::theHeaderSize
private

This is not part of the NITF file header. This will be computed since somethimes the header size will not be given in the header field. This value will hold a count of all the bytes read for the header portion. This can be used to skip past the header data.

Definition at line 410 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getHeaderSize(), initializeAllOffsets(), readDataExtSegInfoRecords(), readImageInfoRecords(), readLabelInfoRecords(), readResExtSegInfoRecords(), readSymbolInfoRecords(), and readTextFileInfoRecords().

◆ theImageOffsetList

std::vector<ossimNitfImageOffsetInformation> ossimNitfFileHeaderV2_0::theImageOffsetList
private

This will hold pre-computed offsets to the start of all image headers and start to their data.

Definition at line 371 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getNewImageHeader(), initializeAllOffsets(), and initializeDisplayLevels().

◆ theImageRect

ossimDrect ossimNitfFileHeaderV2_0::theImageRect
private

This will be pre-computed when the header file is opened. This is computed after we have found the display order. We will use the rectangle of the smallest display number.

Definition at line 358 of file ossimNitfFileHeaderV2_0.h.

Referenced by getImageRect(), and initializeDisplayLevels().

◆ theLabelOffsetList

std::vector<ossimNitfLabelOffsetInformation> ossimNitfFileHeaderV2_0::theLabelOffsetList
private

This will hold pre-computed offsets to the start of all Label headers and start to their data.

Definition at line 383 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getNewLabelHeader(), and initializeAllOffsets().

◆ theNitfDataExtSegInfoRecords

std::vector<ossimNitfDataExtSegInfoRecordV2_0> ossimNitfFileHeaderV2_0::theNitfDataExtSegInfoRecords
private

This information is conditional on the number of info records field. If the field is greater than 0 then the record information is read in up to the indicated number

Definition at line 570 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getNewDataExtensionSegment(), getNumberOfDataExtSegments(), initializeAllOffsets(), print(), readDataExtSegInfoRecords(), saveState(), and writeStream().

◆ theNitfImageInfoRecords

std::vector<ossimNitfImageInfoRecordV2_0> ossimNitfFileHeaderV2_0::theNitfImageInfoRecords
private

This information is conditional on the number of image info records field. If the field is greater than 0 then the record information is read in up to the indicated number

Definition at line 515 of file ossimNitfFileHeaderV2_0.h.

Referenced by addImageInfoRecord(), getNumberOfImages(), initializeAllOffsets(), print(), readImageInfoRecords(), replaceImageInfoRecord(), saveState(), and writeStream().

◆ theNitfLabelInfoRecords

std::vector<ossimNitfLabelInfoRecordV2_0> ossimNitfFileHeaderV2_0::theNitfLabelInfoRecords
private

This information is conditional on the number of label info records field. If the field is greater than 0 then the record information is read in up to the indicated number

Definition at line 542 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getNumberOfLabels(), initializeAllOffsets(), print(), readLabelInfoRecords(), saveState(), and writeStream().

◆ theNitfResExtSegInfoRecords

std::vector<ossimNitfResExtSegInfoRecordV2_0> ossimNitfFileHeaderV2_0::theNitfResExtSegInfoRecords
private

This information is conditional on the number of Res Ext Seg info records field. If the field is greater than 0 then the record information is read in up to the indicated number

Definition at line 584 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getNumberOfReservedExtSegments(), print(), readResExtSegInfoRecords(), saveState(), and writeStream().

◆ theNitfSymbolInfoRecords

std::vector<ossimNitfSymbolInfoRecordV2_0> ossimNitfFileHeaderV2_0::theNitfSymbolInfoRecords
private

This information is conditional on the number of symbol info records field. If the field is greater than 0 then the record information is read in up to the indicated number

Definition at line 527 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getNumberOfSymbols(), initializeAllOffsets(), print(), readSymbolInfoRecords(), saveState(), and writeStream().

◆ theNitfTextInfoRecords

std::vector<ossimNitfTextInfoRecordV2_0> ossimNitfFileHeaderV2_0::theNitfTextInfoRecords
private

This information is conditional on the number of text file info records field. If the field is greater than 0 then the record information is read in up to the indicated number

Definition at line 556 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getNumberOfTextSegments(), initializeAllOffsets(), print(), readTextFileInfoRecords(), saveState(), and writeStream().

◆ theNumberOfDataExtSegInfoRecords

char ossimNitfFileHeaderV2_0::theNumberOfDataExtSegInfoRecords[4]
private

NUMDES:

This is a 3 byte numeric 0-999.

Definition at line 563 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), print(), readDataExtSegInfoRecords(), and saveState().

◆ theNumberOfImageInfoRecords

char ossimNitfFileHeaderV2_0::theNumberOfImageInfoRecords[4]
private

NUMI:

This is a 3 byte field that specifies the number of images in the file. 0-999

Definition at line 508 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), print(), readImageInfoRecords(), saveState(), and setNumberOfImageInfoRecords().

◆ theNumberOfLabelInfoRecords

char ossimNitfFileHeaderV2_0::theNumberOfLabelInfoRecords[4]
private

NUML.

This is a 3 byte numeric 0-999.

Definition at line 535 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), print(), readLabelInfoRecords(), and saveState().

◆ theNumberOfResExtSegInfoRecords

char ossimNitfFileHeaderV2_0::theNumberOfResExtSegInfoRecords[4]
private

NUMRES:

This is a 3 byte numeric 0-999. Reserved Extension Segments

Definition at line 577 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), print(), readResExtSegInfoRecords(), and saveState().

◆ theNumberOfSymbolInfoRecords

char ossimNitfFileHeaderV2_0::theNumberOfSymbolInfoRecords[4]
private

This is a 3 byte numeric 0-999.

Definition at line 521 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), print(), readSymbolInfoRecords(), and saveState().

◆ theNumberOfTextFileInfoRecords

char ossimNitfFileHeaderV2_0::theNumberOfTextFileInfoRecords[4]
private

NUMT:

This is a 3 byte numeric 0-999.

Definition at line 549 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), print(), readTextFileInfoRecords(), and saveState().

◆ theOriginatorsName

char ossimNitfFileHeaderV2_0::theOriginatorsName[28]
private

ONAME:

This is a 27 byte Alphanumeric number

Definition at line 469 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getOriginatorsName(), getProperty(), print(), saveState(), setOriginatorsName(), and writeStream().

◆ theOriginatorsPhone

char ossimNitfFileHeaderV2_0::theOriginatorsPhone[19]
private

OPHONE: This is an 18 byte Alphanumeric value.

Definition at line 475 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getOriginatorsPhone(), getProperty(), print(), saveState(), setOriginatorsPhone(), and writeStream().

◆ theReleasingInstructions

char ossimNitfFileHeaderV2_0::theReleasingInstructions[41]
private

FSREL: This is a 40 byte Alphanumeric field.

Definition at line 425 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getReleasingInstructions(), print(), saveState(), setReleasingInstructions(), and writeStream().

◆ theSecurityControlNumber

char ossimNitfFileHeaderV2_0::theSecurityControlNumber[21]
private

FSCTLN: This is a 20 byte Alphanumeric field.

Definition at line 435 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getSecurityControlNumber(), print(), saveState(), setSecurityControlNumber(), and writeStream().

◆ theSecurityDowngrade

char ossimNitfFileHeaderV2_0::theSecurityDowngrade[7]
private

FSDWNG:

This is a 6 byte Alphanumeric. If this field is not blank then it will have the form:

YYMMDD

Where YY is the last 2 chars of the year and will be 00 to 59 represents 2000 to 2059 60 to 99 represents 1960 to 1999

if the field is 999999 then the Originating agency field is required. If te field is 999998 then the downgrade event is required

Definition at line 454 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getProperty(), getSecurityDowngrade(), print(), saveState(), setSecurityDowngrade(), and writeStream().

◆ theSymbolOffsetList

std::vector<ossimNitfSymbolOffsetInformation> ossimNitfFileHeaderV2_0::theSymbolOffsetList
private

This will hold pre-computed offsets to the start of all symbol headers and start to their data.

Definition at line 377 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getNewSymbolHeader(), and initializeAllOffsets().

◆ theTextOffsetList

std::vector<ossimNitfTextOffsetInformation> ossimNitfFileHeaderV2_0::theTextOffsetList
private

This will hold pre-computed offsets to the start of all text headers and start to their data.

Definition at line 389 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), getNewTextHeader(), and initializeAllOffsets().

◆ theUserDefinedHeaderDataLength

char ossimNitfFileHeaderV2_0::theUserDefinedHeaderDataLength[6]
private

UDHDL:

This is a required field and is a 5 byte numeric ranging from 0-99999. This is 0 if there is no data.

Definition at line 592 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), print(), saveState(), and writeStream().

◆ theUserDefinedHeaderOverflow

char ossimNitfFileHeaderV2_0::theUserDefinedHeaderOverflow[4]
private

This is a conditional field. It will exist if the user defined header length is not 0. If it exists then it may contain an overflow into one of the data extension segments above and will hold the number of that segment.

Definition at line 601 of file ossimNitfFileHeaderV2_0.h.

Referenced by clearFields(), print(), readOverflowTags(), and writeStream().


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