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

#include <ossimNitfDataExtensionSegmentV2_1.h>

Inheritance diagram for ossimNitfDataExtensionSegmentV2_1:
ossimNitfDataExtensionSegment ossimPropertyInterface ossimObject ossimReferenced

Public Member Functions

 ossimNitfDataExtensionSegmentV2_1 ()
 
virtual ~ossimNitfDataExtensionSegmentV2_1 ()
 
virtual void parseStream (std::istream &in, ossim_uint64 dataLength)
 
virtual void writeStream (std::ostream &out)
 
virtual std::ostream & print (std::ostream &out) const
 Generic print method. More...
 
virtual const std::vector< ossimNitfTagInformation > & getTagList () const
 
virtual void setTagList (const std::vector< ossimNitfTagInformation > &tagList)
 
virtual void setSecurityMarkings (const ossimNitfFileHeaderV2_1 &fileHeader)
 
virtual ossim_uint32 getHeaderLength () const
 
virtual ossim_uint64 getDataLength () const
 
virtual void setProperty (ossimRefPtr< ossimProperty > property)
 
virtual ossimRefPtr< ossimPropertygetProperty (const ossimString &name) const
 
virtual void getPropertyNames (std::vector< ossimString > &propertyNames) const
 
- Public Member Functions inherited from ossimNitfDataExtensionSegment
 ossimNitfDataExtensionSegment ()
 
virtual ~ossimNitfDataExtensionSegment ()
 
- 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)
 
- 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 bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 
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
 

Static Public Attributes

static const ossimString DESID_KW = "desid"
 
static const ossimString DESCLSY_KW = "desclsy"
 
static const ossimString DESDCTP_KW = "desdctp"
 
static const ossimString DESDCDT_KW = "desdcdt"
 
static const ossimString DESDCXM_KW = "desdcxm"
 
static const ossimString DESDG_KW = "desdg"
 
static const ossimString DESDGDT_KW = "desdgdt"
 
static const ossimString DESCLTX_KW = "descltx"
 
static const ossimString DESCATP_KW = "descatp"
 
static const ossimString DESCRSN_KW = "descrsn"
 
static const ossimString DESSRDT_KW = "dessrdt"
 
- Static Public Attributes inherited from ossimNitfDataExtensionSegment
static const ossimString DE_KW
 
static const ossimString DESVER_KW
 
static const ossimString DESOFLW_KW = "desoflw"
 
static const ossimString DESITEM_KW = "desitem"
 
static const ossimString DESSHL_KW = "desshl"
 
static const ossimString DESSHF_KW = "desshf"
 
static const ossimString DESDATA_KW = "desdata"
 
static const ossimString DECLAS_KW = "declas"
 
static const ossimString DESCODE_KW = "descode"
 
static const ossimString DESCTLH_KW = "desctlh"
 
static const ossimString DESREL_KW = "desrel"
 
static const ossimString DESCAUT_KW = "descaut"
 
static const ossimString DESCTLN_KW = "desctln"
 

Private Member Functions

void clearFields ()
 

Private Attributes

ossimNitfDataExtIdentSecurityChunkV2_1 theIdentSecurityChunk
 
char theOverflowedHeaderType [7]
 
char theDataItemOverflowed [4]
 
char theLengthOfUserDefinedSubheaderFields [5]
 
std::vector< unsigned char > theUserDefinedSubheaderFields
 
std::vector< unsigned char > theData
 
std::vector< ossimNitfTagInformationtheTagList
 

Additional Inherited Members

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

Detailed Description

Definition at line 44 of file ossimNitfDataExtensionSegmentV2_1.h.

Constructor & Destructor Documentation

◆ ossimNitfDataExtensionSegmentV2_1()

ossimNitfDataExtensionSegmentV2_1::ossimNitfDataExtensionSegmentV2_1 ( )

◆ ~ossimNitfDataExtensionSegmentV2_1()

ossimNitfDataExtensionSegmentV2_1::~ossimNitfDataExtensionSegmentV2_1 ( )
virtual

Definition at line 71 of file ossimNitfDataExtensionSegmentV2_1.cpp.

72 {
73 
74 }

Member Function Documentation

◆ clearFields()

void ossimNitfDataExtensionSegmentV2_1::clearFields ( )
private

Definition at line 198 of file ossimNitfDataExtensionSegmentV2_1.cpp.

References theData, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassAuthority, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassAuthType, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassReason, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassSystem, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtCodewords, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtControlAndHand, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassDate, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassExempt, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassType, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtReleasingInst, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityClass, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityClassText, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityConNum, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityDowngrade, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityDowngradeDate, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecuritySourceDate, theDataItemOverflowed, ossimNitfDataExtIdentSecurityChunkV2_1::theFilePartType, theIdentSecurityChunk, theLengthOfUserDefinedSubheaderFields, theOverflowedHeaderType, theTagList, ossimNitfDataExtIdentSecurityChunkV2_1::theUniqueDataExtTypeId, theUserDefinedSubheaderFields, and ossimNitfDataExtIdentSecurityChunkV2_1::theVersionDataFieldDef.

Referenced by ossimNitfDataExtensionSegmentV2_1(), and parseStream().

199 {
200  memset(theIdentSecurityChunk.theFilePartType, ' ', 2);
219 
220  memset(theOverflowedHeaderType, ' ', 6);
221  memset(theDataItemOverflowed, '0', 3);
223 
243 
244  theOverflowedHeaderType[6] = '\0';
245  theDataItemOverflowed[3] = '\0';
248  theData.clear();
249  theTagList.clear();
250 }
std::vector< ossimNitfTagInformation > theTagList
ossimNitfDataExtIdentSecurityChunkV2_1 theIdentSecurityChunk
std::vector< unsigned char > theUserDefinedSubheaderFields

◆ getDataLength()

ossim_uint64 ossimNitfDataExtensionSegmentV2_1::getDataLength ( ) const
virtual

Definition at line 303 of file ossimNitfDataExtensionSegmentV2_1.cpp.

References theData, and theTagList.

304 {
305  ossim_uint64 totalDataLength = 0;
306  if (theTagList.empty() == true)
307  {
308  totalDataLength = theData.size();
309  }
310  else
311  {
312  for (std::vector<ossimNitfTagInformation>::const_iterator iter = theTagList.begin();
313  iter != theTagList.end(); iter++)
314  {
315  totalDataLength += iter->getTotalTagLength();
316  }
317  }
318 
319  return totalDataLength;
320 }
std::vector< ossimNitfTagInformation > theTagList
unsigned long long ossim_uint64

◆ getHeaderLength()

ossim_uint32 ossimNitfDataExtensionSegmentV2_1::getHeaderLength ( ) const
virtual

Definition at line 293 of file ossimNitfDataExtensionSegmentV2_1.cpp.

References theIdentSecurityChunk, ossimNitfDataExtIdentSecurityChunkV2_1::theUniqueDataExtTypeId, theUserDefinedSubheaderFields, ossimString::trim(), and ossimString::upcase().

294 {
296  {
297  return 209;
298  }
299 
300  return 200 + theUserDefinedSubheaderFields.size();
301 }
static ossimString upcase(const ossimString &aString)
Definition: ossimString.cpp:34
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
ossimNitfDataExtIdentSecurityChunkV2_1 theIdentSecurityChunk
std::vector< unsigned char > theUserDefinedSubheaderFields

◆ getProperty()

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

Reimplemented from ossimPropertyInterface.

Definition at line 436 of file ossimNitfDataExtensionSegmentV2_1.cpp.

References ossimNitfDataExtensionSegment::DE_KW, ossimNitfDataExtensionSegment::DECLAS_KW, DESCATP_KW, ossimNitfDataExtensionSegment::DESCAUT_KW, DESCLSY_KW, DESCLTX_KW, ossimNitfDataExtensionSegment::DESCODE_KW, DESCRSN_KW, ossimNitfDataExtensionSegment::DESCTLH_KW, ossimNitfDataExtensionSegment::DESCTLN_KW, ossimNitfDataExtensionSegment::DESDATA_KW, DESDCDT_KW, DESDCTP_KW, DESDCXM_KW, DESDG_KW, DESDGDT_KW, DESID_KW, ossimNitfDataExtensionSegment::DESITEM_KW, ossimNitfDataExtensionSegment::DESOFLW_KW, ossimNitfDataExtensionSegment::DESREL_KW, ossimNitfDataExtensionSegment::DESSHF_KW, ossimNitfDataExtensionSegment::DESSHL_KW, DESSRDT_KW, ossimNitfDataExtensionSegment::DESVER_KW, theData, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassAuthority, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassAuthType, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassReason, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassSystem, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtCodewords, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtControlAndHand, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassDate, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassExempt, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassType, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtReleasingInst, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityClass, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityClassText, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityConNum, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityDowngrade, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityDowngradeDate, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecuritySourceDate, theDataItemOverflowed, ossimNitfDataExtIdentSecurityChunkV2_1::theFilePartType, theIdentSecurityChunk, theLengthOfUserDefinedSubheaderFields, theOverflowedHeaderType, ossimNitfDataExtIdentSecurityChunkV2_1::theUniqueDataExtTypeId, theUserDefinedSubheaderFields, ossimNitfDataExtIdentSecurityChunkV2_1::theVersionDataFieldDef, and ossimString::trim().

Referenced by ossimNitfWriter::addDataExtensionSegment().

437 {
438  ossimProperty* property = 0;
439  if (name == DE_KW)
440  {
442  }
443  else if (name == DESID_KW)
444  {
446  }
447  else if (name == DESVER_KW)
448  {
450  }
451  else if (name == DECLAS_KW)
452  {
454  }
455  else if (name == DESCLSY_KW)
456  {
458  }
459  else if (name == DESCODE_KW)
460  {
462  }
463  else if (name == DESCTLH_KW)
464  {
466  }
467  else if (name == DESREL_KW)
468  {
470  }
471  else if (name == DESDCTP_KW)
472  {
474  }
475  else if (name == DESDCDT_KW)
476  {
478  }
479  else if (name == DESDCXM_KW)
480  {
482  }
483  else if (name == DESDG_KW)
484  {
486  }
487  else if (name == DESDGDT_KW)
488  {
490  }
491  else if (name == DESCLTX_KW)
492  {
494  }
495  else if (name == DESCATP_KW)
496  {
498  }
499  else if (name == DESCAUT_KW)
500  {
502  }
503  else if (name == DESCRSN_KW)
504  {
506  }
507  else if (name == DESSRDT_KW)
508  {
510  }
511  else if (name == DESCTLN_KW)
512  {
514  }
515  else if (name == DESOFLW_KW)
516  {
517  property = new ossimStringProperty(name, ossimString(theOverflowedHeaderType).trim());
518  }
519  else if (name == DESITEM_KW)
520  {
521  property = new ossimStringProperty(name, ossimString(theDataItemOverflowed).trim());
522  }
523  else if (name == DESSHL_KW)
524  {
526  }
527  else if (name == DESSHF_KW)
528  {
530  }
531  else if (name == DESDATA_KW)
532  {
533  // Only valid if setTagList has not been called on this object.
534  property = new ossimBinaryDataProperty(name, theData);
535  }
536 
537  return property;
538 }
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
ossimNitfDataExtIdentSecurityChunkV2_1 theIdentSecurityChunk
std::vector< unsigned char > theUserDefinedSubheaderFields

◆ getPropertyNames()

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

Reimplemented from ossimNitfDataExtensionSegment.

Definition at line 540 of file ossimNitfDataExtensionSegmentV2_1.cpp.

References DESCATP_KW, DESCLSY_KW, DESCLTX_KW, DESCRSN_KW, DESDCDT_KW, DESDCTP_KW, DESDCXM_KW, DESDG_KW, DESDGDT_KW, DESID_KW, DESSRDT_KW, and ossimNitfDataExtensionSegment::getPropertyNames().

541 {
543  propertyNames.push_back(DESID_KW);
544  propertyNames.push_back(DESCLSY_KW);
545  propertyNames.push_back(DESDCTP_KW);
546  propertyNames.push_back(DESDCDT_KW);
547  propertyNames.push_back(DESDCXM_KW);
548  propertyNames.push_back(DESDG_KW);
549  propertyNames.push_back(DESDGDT_KW);
550  propertyNames.push_back(DESCLTX_KW);
551  propertyNames.push_back(DESCATP_KW);
552  propertyNames.push_back(DESCRSN_KW);
553  propertyNames.push_back(DESSRDT_KW);
554 }
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const

◆ getTagList()

virtual const std::vector<ossimNitfTagInformation>& ossimNitfDataExtensionSegmentV2_1::getTagList ( ) const
inlinevirtual

Implements ossimNitfDataExtensionSegment.

Definition at line 52 of file ossimNitfDataExtensionSegmentV2_1.h.

53  {
54  return theTagList;
55  }
std::vector< ossimNitfTagInformation > theTagList

◆ parseStream()

void ossimNitfDataExtensionSegmentV2_1::parseStream ( std::istream &  in,
ossim_uint64  dataLength 
)
virtual

Implements ossimNitfDataExtensionSegment.

Definition at line 76 of file ossimNitfDataExtensionSegmentV2_1.cpp.

References ossimNitfTagInformation::clearFields(), clearFields(), ossimNitfTagInformation::parseStream(), ossimIFStream64::seekg64(), theData, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassAuthority, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassAuthType, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassReason, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassSystem, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtCodewords, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtControlAndHand, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassDate, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassExempt, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassType, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtReleasingInst, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityClass, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityClassText, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityConNum, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityDowngrade, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityDowngradeDate, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecuritySourceDate, theDataItemOverflowed, ossimNitfDataExtIdentSecurityChunkV2_1::theFilePartType, theIdentSecurityChunk, theLengthOfUserDefinedSubheaderFields, theOverflowedHeaderType, theTagList, ossimNitfDataExtIdentSecurityChunkV2_1::theUniqueDataExtTypeId, theUserDefinedSubheaderFields, ossimNitfDataExtIdentSecurityChunkV2_1::theVersionDataFieldDef, ossimString::toLong(), ossimString::trim(), and ossimString::upcase().

77 {
78  if(in)
79  {
80  clearFields();
81 
82  in.read(theIdentSecurityChunk.theFilePartType, 2); // 2 byte alpha
83  in.read(theIdentSecurityChunk.theUniqueDataExtTypeId, 25); // 25 byte alpha numeric
84  in.read(theIdentSecurityChunk.theVersionDataFieldDef, 2); // 2 byte numeric
85  in.read(theIdentSecurityChunk.theDataExtSecurityClass, 1); // 1 byte alpha
87  in.read(theIdentSecurityChunk.theDataExtCodewords, 11); // 11 byte alpha numeric
88  in.read(theIdentSecurityChunk.theDataExtControlAndHand, 2); // 2 byte alpha numeric
89  in.read(theIdentSecurityChunk.theDataExtReleasingInst, 20); // 20 byte alpha numeric
90  in.read(theIdentSecurityChunk.theDataExtDeclassType, 2); // 2 byte alph num
91  in.read(theIdentSecurityChunk.theDataExtDeclassDate, 8); // 8 byte alph num
92  in.read(theIdentSecurityChunk.theDataExtDeclassExempt, 4); // 4 byte alpha num
93  in.read(theIdentSecurityChunk.theDataExtSecurityDowngrade, 1); // 1 byte alpha num
94  in.read(theIdentSecurityChunk.theDataExtSecurityDowngradeDate, 8); // 8 byte alpha num
95  in.read(theIdentSecurityChunk.theDataExtSecurityClassText, 43); // 43 byte alpha num
96  in.read(theIdentSecurityChunk.theDataExtClassAuthType, 1); // 1 byte alpha num
97  in.read(theIdentSecurityChunk.theDataExtClassAuthority, 40); // 40 byte alpha num
98  in.read(theIdentSecurityChunk.theDataExtClassReason, 1); // 1 byte alpha num
99  in.read(theIdentSecurityChunk.theDataExtSecuritySourceDate, 8); // 8 byte alpha num
100  in.read(theIdentSecurityChunk.theDataExtSecurityConNum, 15); // 15 byte alpha num
101 
102  bool overflow = ossimString(theIdentSecurityChunk.theUniqueDataExtTypeId).trim().upcase() == "TRE_OVERFLOW";
103  if (overflow)
104  {
105  in.read(theOverflowedHeaderType, 6);
106  in.read(theDataItemOverflowed, 3);
107  }
108 
110 
111  // look to see if there is any data and if so read the tag
112  // to see what it is
114  if (length > 0)
115  {
116  theUserDefinedSubheaderFields.resize(length);
117  in.read(reinterpret_cast<char*>(&theUserDefinedSubheaderFields.front()), theUserDefinedSubheaderFields.size());
118  }
119 
120  if (dataLength != 0)
121  {
122  if (overflow)
123  {
124  std::streamoff dataBegin = in.tellg();
125  std::streamoff dataEnd = dataBegin + static_cast<std::streamoff>(dataLength);
126 
127  // dataBegin + static_cast<istream::pos_type>(dataLength))
128  while (in.good() && (in.tellg() < dataEnd) )
129  {
131  tag.clearFields();
132  tag.parseStream(in);
133  theTagList.push_back(tag);
134  }
135 
136  ossimIFStream64::seekg64(in, dataBegin, ios::beg);
137  in.clear();
138  }
139 
140  theData.resize(dataLength);
141  in.read(reinterpret_cast<char*>(&theData.front()), theData.size());
142  }
143  }
144 }
std::vector< ossimNitfTagInformation > theTagList
static ossimString upcase(const ossimString &aString)
Definition: ossimString.cpp:34
virtual void parseStream(ossim::istream &in)
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
ossimNitfDataExtIdentSecurityChunkV2_1 theIdentSecurityChunk
std::vector< unsigned char > theUserDefinedSubheaderFields
void seekg64(off_type off, ios_base::seekdir way)
long toLong() const
toLong&#39;s deprecated, please use the toInts...

◆ print()

std::ostream & ossimNitfDataExtensionSegmentV2_1::print ( std::ostream &  out) const
virtual

Generic print method.

Derived classes should re-implement as they see fit.

Returns
std::ostream&

Reimplemented from ossimObject.

Definition at line 278 of file ossimNitfDataExtensionSegmentV2_1.cpp.

References theDataItemOverflowed, theIdentSecurityChunk, theLengthOfUserDefinedSubheaderFields, theOverflowedHeaderType, and theTagList.

279 {
280  out << "theIdentSecurityChunk: "
282  << "\ntheOverflowedHeaderType: "
284  << "\ntheDataItemOverflowed: "
286  << "\ntheLengthOfUserDefinedSubheaderFields: "
288  << "\ntag count: "
289  << theTagList.size() << std::endl;
290  return out;
291 }
std::vector< ossimNitfTagInformation > theTagList
ossimNitfDataExtIdentSecurityChunkV2_1 theIdentSecurityChunk

◆ setProperty()

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

Reimplemented from ossimPropertyInterface.

Definition at line 322 of file ossimNitfDataExtensionSegmentV2_1.cpp.

References ossimNitfDataExtensionSegment::DE_KW, ossimNitfDataExtensionSegment::DECLAS_KW, DESCATP_KW, ossimNitfDataExtensionSegment::DESCAUT_KW, DESCLSY_KW, DESCLTX_KW, ossimNitfDataExtensionSegment::DESCODE_KW, DESCRSN_KW, ossimNitfDataExtensionSegment::DESCTLH_KW, ossimNitfDataExtensionSegment::DESCTLN_KW, ossimNitfDataExtensionSegment::DESDATA_KW, DESDCDT_KW, DESDCTP_KW, DESDCXM_KW, DESDG_KW, DESDGDT_KW, DESID_KW, ossimNitfDataExtensionSegment::DESITEM_KW, ossimNitfDataExtensionSegment::DESOFLW_KW, ossimNitfDataExtensionSegment::DESREL_KW, ossimNitfDataExtensionSegment::DESSHF_KW, ossimNitfDataExtensionSegment::DESSHL_KW, DESSRDT_KW, ossimNitfDataExtensionSegment::DESVER_KW, ossimRefPtr< T >::get(), ossimBinaryDataProperty::getBinaryData(), PTR_CAST, ossimNitfCommon::setField(), theData, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassAuthority, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassAuthType, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassReason, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassSystem, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtCodewords, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtControlAndHand, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassDate, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassExempt, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassType, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtReleasingInst, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityClass, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityClassText, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityConNum, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityDowngrade, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityDowngradeDate, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecuritySourceDate, theDataItemOverflowed, ossimNitfDataExtIdentSecurityChunkV2_1::theFilePartType, theIdentSecurityChunk, theLengthOfUserDefinedSubheaderFields, theOverflowedHeaderType, ossimNitfDataExtIdentSecurityChunkV2_1::theUniqueDataExtTypeId, theUserDefinedSubheaderFields, ossimNitfDataExtIdentSecurityChunkV2_1::theVersionDataFieldDef, and ossimProperty::valueToString().

Referenced by ossimNitfWriter::takeOverflowTags().

323 {
324  if (property.get() == NULL)
325  {
326  return;
327  }
328 
329  const ossimString& name = property->getName();
330  if (name == DE_KW)
331  {
333  }
334  else if (name == DESID_KW)
335  {
337  }
338  else if (name == DESVER_KW)
339  {
341  }
342  else if (name == DECLAS_KW)
343  {
345  }
346  else if (name == DESCLSY_KW)
347  {
349  }
350  else if (name == DESCODE_KW)
351  {
353  }
354  else if (name == DESCTLH_KW)
355  {
357  }
358  else if (name == DESREL_KW)
359  {
361  }
362  else if (name == DESDCTP_KW)
363  {
365  }
366  else if (name == DESDCDT_KW)
367  {
369  }
370  else if (name == DESDCXM_KW)
371  {
373  }
374  else if (name == DESDG_KW)
375  {
377  }
378  else if (name == DESDGDT_KW)
379  {
381  }
382  else if (name == DESCLTX_KW)
383  {
385  }
386  else if (name == DESCATP_KW)
387  {
389  }
390  else if (name == DESCAUT_KW)
391  {
393  }
394  else if (name == DESCRSN_KW)
395  {
397  }
398  else if (name == DESSRDT_KW)
399  {
401  }
402  else if (name == DESCTLN_KW)
403  {
405  }
406  else if (name == DESOFLW_KW)
407  {
409  }
410  else if (name == DESITEM_KW)
411  {
412  ossimNitfCommon::setField(theDataItemOverflowed, property->valueToString(), 3, ios::right, '0');
413  }
414  else if (name == DESSHL_KW)
415  {
417  }
418  else if (name == DESSHF_KW)
419  {
420  ossimBinaryDataProperty* pBinaryData = PTR_CAST(ossimBinaryDataProperty, property.get());
421  if (pBinaryData != NULL)
422  {
424  }
425  }
426  else if (name == DESDATA_KW)
427  {
428  ossimBinaryDataProperty* pBinaryData = PTR_CAST(ossimBinaryDataProperty, property.get());
429  if (pBinaryData != NULL)
430  {
431  theData = pBinaryData->getBinaryData();
432  }
433  }
434 }
virtual void valueToString(ossimString &valueResult) const =0
const vector< unsigned char > & getBinaryData() const
#define PTR_CAST(T, p)
Definition: ossimRtti.h:321
ossimNitfDataExtIdentSecurityChunkV2_1 theIdentSecurityChunk
std::vector< unsigned char > theUserDefinedSubheaderFields
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.

◆ setSecurityMarkings()

void ossimNitfDataExtensionSegmentV2_1::setSecurityMarkings ( const ossimNitfFileHeaderV2_1 fileHeader)
virtual

Definition at line 258 of file ossimNitfDataExtensionSegmentV2_1.cpp.

References ossimString::c_str(), ossimNitfFileHeaderV2_1::getClassificationAuthority(), ossimNitfFileHeaderV2_1::getClassificationAuthorityType(), ossimNitfFileHeaderV2_1::getClassificationReason(), ossimNitfFileHeaderV2_1::getClassificationText(), ossimNitfFileHeaderV2_1::getCodeWords(), ossimNitfFileHeaderV2_1::getControlAndHandling(), ossimNitfFileHeaderV2_1::getDeclassificationDate(), ossimNitfFileHeaderV2_1::getDeclassificationExemption(), ossimNitfFileHeaderV2_1::getDeclassificationType(), ossimNitfFileHeaderV2_1::getDowngrade(), ossimNitfFileHeaderV2_1::getDowngradingDate(), ossimNitfFileHeaderV2_1::getReleasingInstructions(), ossimNitfFileHeaderV2_X::getSecurityClassification(), ossimNitfFileHeaderV2_1::getSecurityClassificationSys(), ossimNitfFileHeaderV2_1::getSecurityControlNumber(), ossimNitfFileHeaderV2_1::getSecuritySourceDate(), ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassAuthority, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassAuthType, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassReason, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassSystem, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtCodewords, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtControlAndHand, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassDate, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassExempt, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassType, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtReleasingInst, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityClass, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityClassText, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityConNum, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityDowngrade, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityDowngradeDate, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecuritySourceDate, and theIdentSecurityChunk.

259 {
276 }
virtual ossimString getClassificationAuthority() const
virtual ossimString getDowngrade() const
virtual ossimString getClassificationReason() const
virtual ossimString getSecurityClassification() const
virtual ossimString getSecuritySourceDate() const
virtual ossimString getClassificationAuthorityType() const
virtual ossimString getCodeWords() const
virtual ossimString getSecurityControlNumber() const
virtual ossimString getDowngradingDate() const
virtual ossimString getClassificationText() const
virtual ossimString getSecurityClassificationSys() const
virtual ossimString getControlAndHandling() const
virtual ossimString getDeclassificationDate() const
virtual ossimString getDeclassificationExemption() const
virtual ossimString getDeclassificationType() const
ossimNitfDataExtIdentSecurityChunkV2_1 theIdentSecurityChunk
virtual ossimString getReleasingInstructions() const
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396

◆ setTagList()

void ossimNitfDataExtensionSegmentV2_1::setTagList ( const std::vector< ossimNitfTagInformation > &  tagList)
virtual

Definition at line 252 of file ossimNitfDataExtensionSegmentV2_1.cpp.

References theData, and theTagList.

Referenced by ossimNitfWriter::takeOverflowTags().

253 {
254  theTagList = tagList;
255  theData.clear();
256 }
std::vector< ossimNitfTagInformation > theTagList

◆ writeStream()

void ossimNitfDataExtensionSegmentV2_1::writeStream ( std::ostream &  out)
virtual

Definition at line 146 of file ossimNitfDataExtensionSegmentV2_1.cpp.

References theData, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassAuthority, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassAuthType, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassReason, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtClassSystem, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtCodewords, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtControlAndHand, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassDate, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassExempt, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtDeclassType, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtReleasingInst, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityClass, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityClassText, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityConNum, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityDowngrade, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecurityDowngradeDate, ossimNitfDataExtIdentSecurityChunkV2_1::theDataExtSecuritySourceDate, theDataItemOverflowed, ossimNitfDataExtIdentSecurityChunkV2_1::theFilePartType, theIdentSecurityChunk, theLengthOfUserDefinedSubheaderFields, theOverflowedHeaderType, theTagList, ossimNitfDataExtIdentSecurityChunkV2_1::theUniqueDataExtTypeId, theUserDefinedSubheaderFields, ossimNitfDataExtIdentSecurityChunkV2_1::theVersionDataFieldDef, ossimString::trim(), and ossimString::upcase().

147 {
148  if (out)
149  {
169 
170  bool overflow = ossimString(theIdentSecurityChunk.theUniqueDataExtTypeId).trim().upcase() == "TRE_OVERFLOW";
171  if (overflow)
172  {
173  out.write(theOverflowedHeaderType, 6);
174  out.write(theDataItemOverflowed, 3);
175  }
176 
178  for (unsigned int i = 0; i < theUserDefinedSubheaderFields.size(); i++)
179  {
180  out.write(reinterpret_cast<char*>(&theUserDefinedSubheaderFields.front()), theUserDefinedSubheaderFields.size());
181  }
182 
183  if (overflow && theTagList.empty() == false)
184  {
185  for (std::vector<ossimNitfTagInformation>::iterator iter = theTagList.begin();
186  iter != theTagList.end(); ++iter)
187  {
188  iter->writeStream(out);
189  }
190  }
191  else
192  {
193  out.write(reinterpret_cast<char*>(&theData.front()), theData.size());
194  }
195  }
196 }
std::vector< ossimNitfTagInformation > theTagList
static ossimString upcase(const ossimString &aString)
Definition: ossimString.cpp:34
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
ossimNitfDataExtIdentSecurityChunkV2_1 theIdentSecurityChunk
std::vector< unsigned char > theUserDefinedSubheaderFields

Member Data Documentation

◆ DESCATP_KW

const ossimString ossimNitfDataExtensionSegmentV2_1::DESCATP_KW = "descatp"
static

Definition at line 76 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by getProperty(), getPropertyNames(), and setProperty().

◆ DESCLSY_KW

const ossimString ossimNitfDataExtensionSegmentV2_1::DESCLSY_KW = "desclsy"
static

Definition at line 69 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by getProperty(), getPropertyNames(), and setProperty().

◆ DESCLTX_KW

const ossimString ossimNitfDataExtensionSegmentV2_1::DESCLTX_KW = "descltx"
static

Definition at line 75 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by getProperty(), getPropertyNames(), and setProperty().

◆ DESCRSN_KW

const ossimString ossimNitfDataExtensionSegmentV2_1::DESCRSN_KW = "descrsn"
static

Definition at line 77 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by getProperty(), getPropertyNames(), and setProperty().

◆ DESDCDT_KW

const ossimString ossimNitfDataExtensionSegmentV2_1::DESDCDT_KW = "desdcdt"
static

Definition at line 71 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by getProperty(), getPropertyNames(), and setProperty().

◆ DESDCTP_KW

const ossimString ossimNitfDataExtensionSegmentV2_1::DESDCTP_KW = "desdctp"
static

Definition at line 70 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by getProperty(), getPropertyNames(), and setProperty().

◆ DESDCXM_KW

const ossimString ossimNitfDataExtensionSegmentV2_1::DESDCXM_KW = "desdcxm"
static

Definition at line 72 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by getProperty(), getPropertyNames(), and setProperty().

◆ DESDG_KW

const ossimString ossimNitfDataExtensionSegmentV2_1::DESDG_KW = "desdg"
static

Definition at line 73 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by getProperty(), getPropertyNames(), and setProperty().

◆ DESDGDT_KW

const ossimString ossimNitfDataExtensionSegmentV2_1::DESDGDT_KW = "desdgdt"
static

Definition at line 74 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by getProperty(), getPropertyNames(), and setProperty().

◆ DESID_KW

const ossimString ossimNitfDataExtensionSegmentV2_1::DESID_KW = "desid"
static

◆ DESSRDT_KW

const ossimString ossimNitfDataExtensionSegmentV2_1::DESSRDT_KW = "dessrdt"
static

Definition at line 78 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by getProperty(), getPropertyNames(), and setProperty().

◆ theData

std::vector<unsigned char> ossimNitfDataExtensionSegmentV2_1::theData
private

This is an n-byte field, where n is found in the file header.

Definition at line 108 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by clearFields(), getDataLength(), getProperty(), parseStream(), setProperty(), setTagList(), and writeStream().

◆ theDataItemOverflowed

char ossimNitfDataExtensionSegmentV2_1::theDataItemOverflowed[4]
private

This is a 3 byte field

Definition at line 93 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by clearFields(), getProperty(), parseStream(), print(), setProperty(), and writeStream().

◆ theIdentSecurityChunk

ossimNitfDataExtIdentSecurityChunkV2_1 ossimNitfDataExtensionSegmentV2_1::theIdentSecurityChunk
private

◆ theLengthOfUserDefinedSubheaderFields

char ossimNitfDataExtensionSegmentV2_1::theLengthOfUserDefinedSubheaderFields[5]
private

This is a 4 byte field.

Definition at line 98 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by clearFields(), getProperty(), parseStream(), print(), setProperty(), and writeStream().

◆ theOverflowedHeaderType

char ossimNitfDataExtensionSegmentV2_1::theOverflowedHeaderType[7]
private

This is a 6 byte field

Definition at line 88 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by clearFields(), getProperty(), parseStream(), print(), setProperty(), and writeStream().

◆ theTagList

std::vector<ossimNitfTagInformation> ossimNitfDataExtensionSegmentV2_1::theTagList
private

◆ theUserDefinedSubheaderFields

std::vector<unsigned char> ossimNitfDataExtensionSegmentV2_1::theUserDefinedSubheaderFields
private

This is an n-byte field, where n is theLengthOfUserDefinedSubheaderFields.

Definition at line 103 of file ossimNitfDataExtensionSegmentV2_1.h.

Referenced by clearFields(), getHeaderLength(), getProperty(), parseStream(), setProperty(), and writeStream().


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