7 m_inputStream(&m_streamBuffer)
16 bool completeDataBin =
false;
35 BinIDIndicator = (tempByte >> 5) & 0x03;
36 if ( (BinIDIndicator < 1) || (BinIDIndicator > 3) )
38 throw new ossimException(
"Wrong server response: impossible to decode it correctly");
42 completeDataBin = (tempByte & 0x10)==0 ?
false :
true;
45 inClassIdentifier = tempByte & 0x0F;
46 if ((tempByte >> 7) > 0 ) {
52 throw new ossimException(
"There is not data available to read the VBAS");
54 inClassIdentifier = (inClassIdentifier << 7) | (
ossim_int64)(tempByte & 0x7F);
57 if (numBytesVBAS > 9) {
58 throw new ossimException(
"VBAS length is larger than 63 bits (which is the maximum of long)");
60 }
while ( (tempByte & 0x80) != 0 );
67 if ( (BinIDIndicator == 2) || (BinIDIndicator == 3) )
78 throw new ossimException(
"Wrong server response: invalid value for Class identifier)");
81 if ( BinIDIndicator == 3)
131 throw ossimException(
"There is not data available to read the VBAS");
134 value = (value << 7) | (
long) (tempByte & 0x7F);
137 if (numBytesVBAS > 9)
139 throw ossimException(
"VBAS length is larger than 63 bits (which is the maximum of long)");
142 }
while ( (tempByte & 0x80) != 0 );
160 int EORBodyLength = (int)
readVBAS();
164 if (EORBodyLength > 0 )
ossim_int64 readVBAS()
Reads a Variable-length Byte-Aligned Segment.
ossimJpipMessageHeader * header()
ossim_int64 m_headerLength
Indicates the length of the JPIP message header.
MessageBodyType & messageBody()
virtual ossimJpipMessage * readMessage()
ossimJpipMessageDecoder()
ossim_int32 m_lastCSn
Contains the last CSn value.
std::istream m_inputStream
void setHeaderLength(ossim_uint64 length)
ossimJpipMessage * readEORMessage()