diff --git a/src/osgPlugins/ive/DataInputStream.cpp b/src/osgPlugins/ive/DataInputStream.cpp index 49e9da7cb..4e26a2b1e 100644 --- a/src/osgPlugins/ive/DataInputStream.cpp +++ b/src/osgPlugins/ive/DataInputStream.cpp @@ -48,7 +48,10 @@ using namespace ive; using namespace std; -DataInputStream::DataInputStream(std::istream* istream){ +DataInputStream::DataInputStream(std::istream* istream) +{ + _verboseOutput = true; + _istream = istream; _peeking = false; _peekValue = 0; @@ -70,16 +73,24 @@ DataInputStream::~DataInputStream(){} bool DataInputStream::readBool(){ char c; _istream->read(&c, CHARSIZE); + if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readBool(): Failed to read boolean value."); + + if (_verboseOutput) std::cout<<"read/writeBool() ["<<(int)c<<"]"<read(&c, CHARSIZE); + if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readChar(): Failed to read char value."); + + if (_verboseOutput) std::cout<<"read/writeChar() ["<<(int)c<<"]"<read((char*)&s, SHORTSIZE); if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readUShort(): Failed to read unsigned short value."); + + if (_verboseOutput) std::cout<<"read/writeUShort() ["<read((char*)&s, INTSIZE); if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readUInt(): Failed to read unsigned int value."); + + if (_verboseOutput) std::cout<<"read/writeUInt() ["<read((char*)&i, INTSIZE); if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readInt(): Failed to read int value."); + + if (_verboseOutput) std::cout<<"read/writeInt() ["<read((char*)&f, FLOATSIZE); if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readFloat(): Failed to read float value."); + + if (_verboseOutput) std::cout<<"read/writeFloat() ["<read((char*)&l, LONGSIZE); if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readLong(): Failed to read long value."); + + if (_verboseOutput) std::cout<<"read/writeLong() ["<read((char*)&d, DOUBLESIZE); if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readDouble(): Failed to read double value."); + + if (_verboseOutput) std::cout<<"read/writeDouble() ["<read((char*)s.c_str(), size); if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readString(): Failed to read string value."); + + if (_verboseOutput) std::cout<<"read/writeString() ["<read(data, size); if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readCharArray(): Failed to read char value."); + + if (_verboseOutput) std::cout<<"read/writeCharArray() ["<read((char*)&((*a)[0]), INTSIZE*size); + if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readIntArray(): Failed to read Int array."); -// a->reserve(size); -// for(int i =0; ipush_back(readInt()); -// } + if (_verboseOutput) std::cout<<"read/writeIntArray() ["<read((char*)&((*a)[0]), CHARSIZE*size); + if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readUByteArray(): Failed to read UByte array."); -// a->reserve(size); -// for(int i =0; ipush_back(readChar()); -// } + if (_verboseOutput) std::cout<<"read/writeUByteArray() ["<read((char*)&((*a)[0]), SHORTSIZE*size); + if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readUShortArray(): Failed to read UShort array."); -// -// a->reserve(size); -// for(int i =0; ipush_back(readUShort()); -// } + + if (_verboseOutput) std::cout<<"read/writeUShortArray() ["<read((char*)&((*a)[0]), INTSIZE*size); + if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readUIntArray(): Failed to read UInt array."); -// -// a->reserve(size); -// for(int i =0; ipush_back((unsigned int)readInt()); -// } + + if (_verboseOutput) std::cout<<"read/writeUIntArray() ["<read((char*)&((*a)[0]), INTSIZE*size); + if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readUbyte4Array(): Failed to read UByte4 array."); -// a->reserve(size); -// for(int i =0; ipush_back(readUByte4()); -// } + if (_verboseOutput) std::cout<<"read/writeUByte4Array() ["<read((char*)&((*a)[0]), FLOATSIZE*size); + if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readFloatArray(): Failed to read float array."); -// a->reserve(size); -// for(int i =0; ipush_back(readFloat()); -// } + if (_verboseOutput) std::cout<<"read/writeFloatArray() ["<read((char*)&((*a)[0]), FLOATSIZE*2*size); + if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readVec2Array(): Failed to read Vec2 array."); -// for(int i = 0; i < size; i++){ -// (*a)[i] = (readVec2()); -// } + if (_verboseOutput) std::cout<<"read/writeVec2Array() ["<read((char*)&((*a)[0]), FLOATSIZE*3*size); + if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readVec3Array(): Failed to read Vec3 array."); -// for(int i = 0; i < size; i++){ -// (*a)[i] = readVec3(); -// } + if (_verboseOutput) std::cout<<"read/writeVec3Array() ["<read((char*)&((*a)[0]), FLOATSIZE*4*size); + if (_istream->rdstate() & _istream->failbit) throw Exception("DataInputStream::readVec4Array(): Failed to read Vec4 array."); - -// for(int i = 0; i < size; i++){ -// (*a)[i] = (readVec4()); -// } - + if (_verboseOutput) std::cout<<"read/writeVec4Array() ["<rdstate() & _istream->failbit) throw Exception("DataInputStream::readMatrix(): Failed to read Matrix array."); + if (_verboseOutput) std::cout<<"read/writeMatrix() ["< > DrawableMap; typedef std::map > NodeMap; + bool _verboseOutput; private: std::istream* _istream; diff --git a/src/osgPlugins/ive/DataOutputStream.cpp b/src/osgPlugins/ive/DataOutputStream.cpp index db8402a5c..6e03228be 100644 --- a/src/osgPlugins/ive/DataOutputStream.cpp +++ b/src/osgPlugins/ive/DataOutputStream.cpp @@ -47,7 +47,9 @@ using namespace ive; -DataOutputStream::DataOutputStream(std::ostream * ostream){ +DataOutputStream::DataOutputStream(std::ostream * ostream) +{ + _verboseOutput = true; _includeImageData= true; _ostream = ostream; @@ -60,56 +62,80 @@ DataOutputStream::~DataOutputStream(){} void DataOutputStream::writeBool(bool b) { - char c = b; + char c = b?1:0; _ostream->write(&c, CHARSIZE); + + if (_verboseOutput) std::cout<<"read/writeBool() ["<<(int)c<<"]"<write(&c, CHARSIZE); + + if (_verboseOutput) std::cout<<"read/writeChar() ["<<(int)c<<"]"<write((char*)&s, SHORTSIZE); + + if (_verboseOutput) std::cout<<"read/writeUShort() ["<write((char*)&s, INTSIZE); + + if (_verboseOutput) std::cout<<"read/writeUInt() ["<write((char*)&i, INTSIZE); + + if (_verboseOutput) std::cout<<"read/writeInt() ["<write((char*)&f, FLOATSIZE); + + if (_verboseOutput) std::cout<<"read/writeFloat() ["<write((char*)&l, LONGSIZE); + + if (_verboseOutput) std::cout<<"read/writeLong() ["<write((char*)&d, DOUBLESIZE); + + if (_verboseOutput) std::cout<<"read/writeDouble() ["<write(s.c_str(), s.size()); + + if (_verboseOutput) std::cout<<"read/writeString() ["<write(data, size); + + if (_verboseOutput) std::cout<<"read/writeCharArray() ["<index(i)); } + + if (_verboseOutput) std::cout<<"read/writeIntArray() ["<second); + + if (_verboseOutput) std::cout<<"read/writeStateSet() ["<second<<"]"<write(this); + + if (_verboseOutput) std::cout<<"read/writeStateSet() ["<second); + if (_verboseOutput) std::cout<<"read/writeStateAttribute() ["<second<<"]"<className(); throw Exception(std::string("StateSet::write(): Unknown StateAttribute: ").append(className)); } + if (_verboseOutput) std::cout<<"read/writeStateAttribute() ["<second); + + if (_verboseOutput) std::cout<<"read/writeDrawable() ["<second<<"]"<second); + + if (_verboseOutput) std::cout<<"read/writeNode() ["<second<<"]"<