OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimNitfDataExtensionSegmentV2_1.h
Go to the documentation of this file.
1 //*******************************************************************
2 // Copyright (C) 2000 ImageLinks Inc.
3 //
4 // License: See top level LICENSE.txt file.
5 //
6 // Author: Garrett Potts
7 //
8 // Description: Nitf support class
9 //
10 //********************************************************************
11 // $Id: ossimNitfDataExtensionSegmentV2_1.h 9094 2006-06-13 19:12:40Z dburken $
12 #ifndef ossimNitfDataExtensionSegmentV2_1_HEADER
13 #define ossimNitfDataExtensionSegmentV2_1_HEADER
16 
18 
20 {
23  char theFilePartType[3]; // 2 byte alpha
24  char theUniqueDataExtTypeId[26]; // 25 byte alpha numeric
25  char theVersionDataFieldDef[3]; // 2 byte numeric
26  char theDataExtSecurityClass[2]; // 1 byte alpha
28  char theDataExtCodewords[12]; // 11 byte alpha numeric
29  char theDataExtControlAndHand[3]; // 2 byte alpha numeric
30  char theDataExtReleasingInst[21]; // 20 byte alpha numeric
34  char theDataExtSecurityDowngrade[2]; // 1 byte alpha
38  char theDataExtClassAuthority[41]; // 40 byte alph num
41  char theDataExtSecurityConNum[16]; // 20 byte alpha num
42 };
43 
45 {
46 public:
49  virtual void parseStream(std::istream &in, ossim_uint64 dataLength);
50  virtual void writeStream(std::ostream &out);
51  virtual std::ostream& print(std::ostream& out)const;
52  virtual const std::vector<ossimNitfTagInformation>& getTagList()const
53  {
54  return theTagList;
55  }
56 
57  virtual void setTagList(const std::vector<ossimNitfTagInformation> &tagList);
58 
59  virtual void setSecurityMarkings(const ossimNitfFileHeaderV2_1 &fileHeader);
60 
61  virtual ossim_uint32 getHeaderLength() const;
62  virtual ossim_uint64 getDataLength() const;
63 
64  virtual void setProperty(ossimRefPtr<ossimProperty> property);
65  virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
66  virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
67 
68  static const ossimString DESID_KW;
69  static const ossimString DESCLSY_KW;
70  static const ossimString DESDCTP_KW;
71  static const ossimString DESDCDT_KW;
72  static const ossimString DESDCXM_KW;
73  static const ossimString DESDG_KW;
74  static const ossimString DESDGDT_KW;
75  static const ossimString DESCLTX_KW;
76  static const ossimString DESCATP_KW;
77  static const ossimString DESCRSN_KW;
78  static const ossimString DESSRDT_KW;
79 
80 private:
81  void clearFields();
82 
84 
88  char theOverflowedHeaderType[7];
89 
93  char theDataItemOverflowed[4];
94 
98  char theLengthOfUserDefinedSubheaderFields[5];
99 
103  std::vector<unsigned char> theUserDefinedSubheaderFields;
104 
108  std::vector<unsigned char> theData;
109 
110  std::vector<ossimNitfTagInformation> theTagList;
111 
112 TYPE_DATA
113 };
114 
115 #endif
std::vector< ossimNitfTagInformation > theTagList
#define OSSIMDLLEXPORT
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
virtual const std::vector< ossimNitfTagInformation > & getTagList() const
virtual std::ostream & print(std::ostream &out) const
Generic print method.
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned long long ossim_uint64
unsigned int ossim_uint32
virtual void parseStream(std::istream &in, ossim_uint64 dataLength)=0
ossimNitfDataExtIdentSecurityChunkV2_1 theIdentSecurityChunk
std::vector< unsigned char > theUserDefinedSubheaderFields
std::basic_istream< char > istream
Base class for char input streams.
Definition: ossimIosFwd.h:20
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual void setProperty(const ossimString &name, const ossimString &value)
friend std::ostream & operator<<(std::ostream &out, const ossimNitfDataExtIdentSecurityChunkV2_1 &data)
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23