OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimNitfStdidcTag.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: MIT
4 //
5 // See LICENSE.txt file in the top level directory for more details.
6 //
7 // Author: Walt Bunch
8 //
9 // Description: NITF support data class for STDIDC - Standard ID extension.
10 //
11 // See: STDI-000_v2.1 Table 7-3 for detailed description.
12 //
13 //********************************************************************
14 // $Id: ossimNitfStdidcTag.h 22013 2012-12-19 17:37:20Z dburken $
15 #ifndef ossimNitfStdidcTag_HEADER
16 #define ossimNitfStdidcTag_HEADER 1
18 
20 {
21 public:
22 
23  enum
24  {
25  ACQ_DATE_SIZE = 14,
26  MISSION_SIZE = 14,
27  PASS_SIZE = 2,
28  OP_NUM_SIZE = 3,
29  START_SEGMENT_SIZE = 2,
30  REPRO_NUM_SIZE = 2,
31  REPLAY_REGEN_SIZE = 3,
32  BLANK_FILL_SIZE = 1,
33  START_COLUMN_SIZE = 3,
34  START_ROW_SIZE = 5,
35  END_SEGMENT_SIZE = 2,
36  END_COLUMN_SIZE = 3,
37  END_ROW_SIZE = 5,
38  COUNTRY_SIZE = 2,
39  WAC_SIZE = 4,
40  LOCATION_SIZE = 11,
41  FIELD17_SIZE = 5,
42  FIELD18_SIZE = 8
43  // -----
44  // 89 bytes
45  };
46 
48  virtual ~ossimNitfStdidcTag();
49 
50  virtual void parseStream(std::istream& in);
51  virtual void writeStream(std::ostream& out);
52 
53  virtual void clearFields();
54 
55  // The set methods below taking ossimString args will truncate and
56  // pad with spaces, as necessary, to match enumed size
57  void setAcqDate(ossimString acqDate);
58  ossimString getAcqDate()const;
59  void setMission(ossimString mission);
60  ossimString getMission()const;
61  void setPass(ossimString pass);
62  ossimString getPass()const;
63  void setOpNum(ossimString opNum);
64  ossimString getOpNum()const;
65  void setStartSegment(ossimString startSegment);
66  ossimString getStartSegment()const;
67  void setReproNum(ossimString reproNum);
68  ossimString getReproNum()const;
69  void setReplayRegen(ossimString replayRegen);
70  ossimString getReplayRegen()const;
71  void setBlankFill(ossimString blankFill);
72  ossimString getBlankFill()const;
73  void setStartColumn(ossimString startColumn);
74  ossimString getStartColumn()const;
75  void setStartRow(ossimString startRow);
76  ossimString getStartRow()const;
77  void setEndSegment(ossimString endSegment);
78  ossimString getEndSegment()const;
79  void setEndColumn(ossimString endColumn);
80  ossimString getEndColumn()const;
81  void setEndRow(ossimString endRow);
82  ossimString getEndRow()const;
83  void setCountry(ossimString country);
84  ossimString getCountry()const;
85  void setWac(ossimString wac);
86  ossimString getWac()const;
87  void setLocation(ossimString location);
88  ossimString getLocation()const;
89  void setField17(ossimString field17);
90  ossimString getField17()const;
91  void setField18(ossimString field18);
92  ossimString getField18()const;
93 
100  virtual std::ostream& print(std::ostream& out,
101  const std::string& prefix=std::string()) const;
102 
103  virtual void setProperty(ossimRefPtr<ossimProperty> property);
104  virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
105  virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
106 
107 
108 protected:
109 
113  char theAcqDate[ACQ_DATE_SIZE+1];
114 
118  char theMission[MISSION_SIZE+1];
119 
123  char thePass[PASS_SIZE+1];
124 
128  char theOpNum[OP_NUM_SIZE+1];
129 
133  char theStartSegment[START_SEGMENT_SIZE+1];
134 
138  char theReproNum[REPRO_NUM_SIZE+1];
139 
143  char theReplayRegen[REPLAY_REGEN_SIZE+1];
144 
148  char theBlankFill[BLANK_FILL_SIZE+1];
149 
153  char theStartColumn[START_COLUMN_SIZE+1];
154 
158  char theStartRow[START_ROW_SIZE+1];
159 
163  char theEndSegment[END_SEGMENT_SIZE+1];
164 
168  char theEndColumn[END_COLUMN_SIZE+1];
169 
173  char theEndRow[END_ROW_SIZE+1];
174 
178  char theCountry[COUNTRY_SIZE+1];
179 
183  char theWac[WAC_SIZE+1];
184 
188  char theLocation[LOCATION_SIZE+1];
189 
193  char theField17[FIELD17_SIZE+1];
194 
198  char theField18[FIELD18_SIZE+1];
199 
200 TYPE_DATA
201 };
202 
203 #endif
virtual void writeStream(ossim::ostream &out)=0
virtual void parseStream(ossim::istream &in)=0
This will allow the user defined data to parse the stream.
virtual std::ostream & print(std::ostream &out, const std::string &prefix=std::string()) const
Pure virtual print method that outputs a key/value type format adding prefix to keys.
virtual void setProperty(ossimRefPtr< ossimProperty > property)
#define TYPE_DATA
Definition: ossimRtti.h:339
std::basic_istream< char > istream
Base class for char input streams.
Definition: ossimIosFwd.h:20
#define OSSIM_DLL
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const