41 static const ossimTrace traceDebug(
"ossimNitfFileHeaderV2_0:debug");
48 return out <<
"theImageSubheaderLength: " 49 << data.theImageSubheaderLength << std::endl
51 << data.theImageLength;
75 << std::setiosflags(ios::right)
88 << std::setiosflags(ios::right)
98 return out <<
"theSymbolSubheaderLength: " 100 <<
"theSymbolLength: " 121 return out <<
"theLabelSubheaderLength: " 123 <<
"theLabelLength: " 145 return out <<
"theTextSubheaderLength: " 169 return out <<
"theDataExtSegSubheaderLength: " 171 <<
"theDataExtSegLength: " 193 return out <<
"theResExtSegSubheaderLength: " 195 <<
"theResExtSegLength: " 226 <<
"ossimNitfFileHeaderV2_0::parseStream: entered ......." 322 std::streampos start = in.tellg();
323 std::streampos current = in.tellg();
326 if(userDefinedHeaderLength > 0)
330 current = in.tellg();
331 while((current - start) < userDefinedHeaderLength)
346 "ossimNitfFileHeaderV2_0::parseStream stream error!";
350 current = in.tellg();
359 current = in.tellg();
361 if(extendedHeaderDataLength > 0)
364 current = in.tellg();
366 while((current - start) < extendedHeaderDataLength)
373 current = in.tellg();
388 <<
"ossimNitfFileHeaderV2_0::parseStream: Leaving......." 403 const vector<ossimNitfTagInformation> &desTags = des->
getTagList();
404 for (vector<ossimNitfTagInformation>::const_iterator iter = desTags.begin();
405 iter != desTags.end();
408 iter->setTagType(
"UDHD");
421 const vector<ossimNitfTagInformation> &desTags = des->
getTagList();
422 for (vector<ossimNitfTagInformation>::const_iterator iter = desTags.begin(); iter != desTags.end(); ++iter)
424 iter->setTagType(
"XHD");
467 outString << std::setw(3)
469 << std::setiosflags(ios::right)
472 out.write(outString.str().c_str(), 3);
483 outString << std::setw(3)
485 << std::setiosflags(ios::right)
488 out.write(outString.str().c_str(), 3);
499 outString << std::setw(3)
501 << std::setiosflags(ios::right)
504 out.write(outString.str().c_str(), 3);
515 outString << std::setw(3)
517 << std::setiosflags(ios::right)
520 out.write(outString.str().c_str(), 3);
531 outString << std::setw(3)
533 << std::setiosflags(ios::right)
536 out.write(outString.str().c_str(), 3);
547 outString << std::setw(3)
549 << std::setiosflags(ios::right)
552 out.write(outString.str().c_str(), 3);
566 if(totalLength <= 99999)
570 tempOut << std::setw(5)
572 << std::setiosflags(ios::right)
601 const std::string& prefix)
const 603 out << setiosflags(std::ios::left)
604 << prefix << std::setw(24) <<
"FHDR:" 606 << prefix << std::setw(24) <<
"CLEVEL:" 608 << prefix << std::setw(24) <<
"STYPE:" 610 << prefix << std::setw(24) <<
"OSTAID:" 612 << prefix << std::setw(24) <<
"FDT:" 614 << prefix << std::setw(24) <<
"FTITLE:" 616 << prefix << std::setw(24) <<
"FSCLAS:" 618 << prefix << std::setw(24) <<
"FSCODE:" 620 << prefix << std::setw(24) <<
"FSCTLH:" 622 << prefix << std::setw(24) <<
"FSREL:" 624 << prefix << std::setw(24) <<
"FSCAUT:" 626 << prefix << std::setw(24) <<
"FSCTLN:" 628 << prefix << std::setw(24) <<
"FSDWNG:" 630 << prefix << std::setw(24) <<
"FSDEVT:" 632 << prefix << std::setw(24) <<
"FSCOP:" 634 << prefix << std::setw(24) <<
"FSCPYS:" 636 << prefix << std::setw(24) <<
"ENCRYP:" 638 << prefix << std::setw(24) <<
"ONAME:" 640 << prefix << std::setw(24) <<
"OPHONE:" 642 << prefix << std::setw(24) <<
"FL:" 644 << prefix << std::setw(24) <<
"HL:" 646 << prefix << std::setw(24) <<
"NUMI:" 654 os << std::setw(3) << std::setfill(
'0') << (index+1) <<
":";
659 out << prefix << std::setw(24) << tmpStr
664 out << prefix << std::setw(24) << tmpStr
674 os << std::setw(3) << std::setfill(
'0') << (index+1) <<
":";
696 os << std::setw(3) << std::setfill(
'0') << (index+1) <<
":";
717 os << std::setw(3) << std::setfill(
'0') << (index+1) <<
":";
722 out << prefix << std::setw(24) << tmpStr
728 out << prefix << std::setw(24) << tmpStr
732 out << prefix << std::setw(24) <<
"NUMDES:" 738 os << std::setw(3) << std::setfill(
'0') << (index+1) <<
":";
743 out << prefix << std::setw(24) << tmpStr
750 out << prefix << std::setw(24) << tmpStr
754 out << prefix << std::setw(24) <<
"NUMRES:" 760 os << std::setw(3) << std::setfill(
'0') << (index+1) <<
":";
777 out << prefix << std::setw(24) <<
"UDHDL:" 779 << prefix << std::setw(24) <<
"UDHOFL:" 781 << prefix << std::setw(24) <<
"XHDL:" 815 os << std::setw(3) << std::setfill(
'0') << (index+1) <<
":";
835 os << std::setw(3) << std::setfill(
'0') << (index+1) <<
":";
857 os << std::setw(3) << std::setfill(
'0') << (index+1) <<
":";
878 os << std::setw(3) << std::setfill(
'0') << (index+1) <<
":";
899 os << std::setw(3) << std::setfill(
'0') << (index+1) <<
":";
921 os << std::setw(3) << std::setfill(
'0') << (index+1) <<
":";
941 if(tempKwl.parseStream(in))
944 kwl.
add(prefix, tempKwl);
985 <<
"\nNo images in file or image number (" << imageNumber
986 <<
") is out of range!\n";
1048 (dataExtNumber >= 0))
1062 std::streampos saveTheGetPointer = in.tellg();
1064 std::vector<ossimNitfImageOffsetInformation>::iterator imageOffsetList =
theImageOffsetList.begin();
1083 in.seekg((*imageOffsetList).theImageHeaderOffset, std::ios::beg);
1088 if((tempRect.
width() > 1) &&
1108 in.seekg(saveTheGetPointer, std::ios::beg);
1117 if(displayInformation.
theDisplayLevel < (*displayList).theDisplayLevel)
1251 if(temp ==
"999999999999")
1364 << std::setfill(
'0')
1365 << std::setiosflags(ios::right)
1372 std::string s =
"ossimNitfFileHeaderV2_0::setNumberOfImageInfoRecords:";
1373 s +=
" ERROR\nExceeded max image info number of 999!";
1378 throw std::out_of_range(s);
1388 for(index=0; index < numberOfImages; index++)
1409 for(index=0; index < numberOfSymbols; index++)
1432 for(index=0; index < numberOfLabels; index++)
1452 for(index=0; index < numberOfTextFiles; index++)
1473 for(index=0; index < numberOfDataExtSegs; index++)
1494 for(index=0; index < numberOfResExtSegs; index++)
1563 out << std::setw(12)
1564 << std::setfill(
'0')
1565 << std::setiosflags(ios::right)
1576 << std::setfill(
'0')
1577 << std::setiosflags(ios::right)
1701 propertyNames.push_back(
FDT_KW);
ossim_int32 getImageLength() const
virtual void valueToString(ossimString &valueResult) const =0
char theImageSubheaderLength[7]
ossim_int32 getTotalLength() const
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
ossim_int32 getHeaderLength() const
char theSymbolSubheaderLength[5]
ossim_float64 width() const
ossim_int32 getImageLength() const
Represents serializable keyword/value map.
void setSubheaderLength(ossim_uint32 length)
ossimDrect combine(const ossimDrect &rect) const
ossim_int32 toInt32() const
ossim_int32 getTotalLength() const
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
char theDataExtSegSubheaderLength[5]
char theDataExtSegLength[10]
unsigned long long ossim_uint64
unsigned int ossim_uint32
virtual void parseStream(std::istream &in, ossim_uint64 dataLength)=0
ossim_uint64 getTotalLength() const
char theTextSubheaderLength[5]
ossim_float64 height() const
char theResExtSegLength[8]
ossim_int32 getHeaderLength() const
ossim_uint32 getHeaderLength() const
std::basic_istream< char > istream
Base class for char input streams.
char theResExtSegSubheaderLength[5]
ossim_int32 getTotalLength() const
ossim_int32 getImageLength() const
void setImageLength(ossim_uint64 length)
ossim_uint64 getImageLength() const
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.
ossim_int32 getHeaderLength() const
ossim_int32 getHeaderLength() const
ossim_int64 toInt64() const
virtual const std::vector< ossimNitfTagInformation > & getTagList() const =0
ossim_int32 getTotalLength() const
char theLabelSubheaderLength[5]
#define RTTI_DEF1(cls, name, b1)
ossim_int32 getImageLength() const
std::basic_istringstream< char > istringstream
Class for char input memory streams.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
std::basic_ostream< char > ostream
Base class for char output streams.