OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimNitfStreobTag.cpp
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // License: LGPL
4 //
5 // See LICENSE.txt file in the top level directory for more details.
6 //
7 //
8 // Description: STREOB tag class definition.
9 //
10 // Dataset Indentification TRE.
11 //
12 //----------------------------------------------------------------------------
13 // $Id
14 
15 #include <cstring>
16 #include <istream>
17 #include <iostream>
18 #include <iomanip>
19 
21 
22 
24 
26  : ossimNitfRegisteredTag(std::string("STREOB"), 94)
27 {
28  clearFields();
29 }
30 
32 {
33 }
34 
36 {
37  clearFields();
38 
39  in.read(m_stdId, 60);
40  in.read(n_nMates, 1);
41  in.read(m_mateInstance, 1);
42  in.read(m_bConv, 5);
43  in.read(m_eConv, 5);
44  in.read(m_bAsym, 5);
45  in.read(m_eAsym, 5);
46  in.read(m_bBie, 6);
47  in.read(m_eBie, 6);
48 }
49 
51 {
52  out.write(m_stdId, 60);
53  out.write(n_nMates, 1);
54  out.write(m_mateInstance, 1);
55  out.write(m_bConv, 5);
56  out.write(m_eConv, 5);
57  out.write(m_bAsym, 5);
58  out.write(m_eAsym, 5);
59  out.write(m_bBie, 6);
60  out.write(m_eBie, 6);
61 }
62 
64 {
65  // BCS-N's to '0's, BCS-A's to ' '(spaces)
66 
67  memset(m_stdId, '\0', 61);
68  memset(n_nMates, '\0', 2);
69  memset(m_mateInstance, '\0', 2);
70  memset(m_bConv, '\0', 6);
71  memset(m_eConv, '\0', 6);
72  memset(m_bAsym, '\0', 6);
73  memset(m_eAsym, '\0', 7);
74  memset(m_bBie, '\0', 7);
75 }
76 
78  std::ostream& out, const std::string& prefix) const
79 {
80  std::string pfx = prefix;
81  pfx += getTagName();
82  pfx += ".";
83 
84  out << setiosflags(std::ios::left)
85  << pfx << std::setw(24) << "CETAG:"
86  << getTagName() << "\n"
87  << pfx << std::setw(24) << "ST_ID:" << m_stdId << "\n"
88  << pfx << std::setw(24) << "N_MATES:" << n_nMates << "\n"
89  << pfx << std::setw(24) << "MATE_INSTANCE:" << m_mateInstance << "\n"
90  << pfx << std::setw(24) << "B_CONV:" << m_bConv << "\n"
91  << pfx << std::setw(24) << "E_CONV:" << m_eConv << "\n"
92  << pfx << std::setw(24) << "B_ASYM:" << m_bAsym << "\n"
93  << pfx << std::setw(24) << "E_ASYM:" << m_eAsym << "\n"
94  << pfx << std::setw(24) << "B_BIE:" << m_bBie << "\n";
95 
96  return out;
97 }
virtual ~ossimNitfStreobTag()
destructor
virtual const std::string & getTagName() const
This will return the name of the registered tag for this user defined header.
ossimNitfStreobTag()
default constructor
char m_eConv[6]
FIELD: E_CONV.
virtual void clearFields()
Method to clear all fields including null terminating.
virtual void parseStream(std::istream &in)
Method to parse data from stream.
char m_bBie[7]
FIELD: B_BIE.
char m_eBie[7]
FIELD: E_BIE.
char m_eAsym[6]
FIELD: E_ASYM.
char m_mateInstance[2]
FIELD: MATE_INSTANCE.
virtual void writeStream(std::ostream &out)
Method to write data to stream.
std::basic_istream< char > istream
Base class for char input streams.
Definition: ossimIosFwd.h:20
RTTI_DEF1(ossimNitfStreobTag, "ossimNitfStreobTag", ossimNitfRegisteredTag)
char m_stdId[61]
FIELD: ST_ID.
char m_bAsym[6]
FIELD: B_ASYM.
char m_bConv[6]
FIELD: B_CONV.
char n_nMates[2]
FIELD: N_MATES.
virtual std::ostream & print(std::ostream &out, const std::string &prefix) const
Print method that outputs a key/value type format adding prefix to keys.
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23