/* * Copyright (C) 2007-2019 Xagasoft, All rights reserved. * * This file is part of the libbu++ library and is released under the * terms of the license contained in the file LICENSE. */ #ifndef BU_ARCHIVE_BINARY_H #define BU_ARCHIVE_BINARY_H #include #include "bu/archive.h" #include "bu/hash.h" #include "bu/util.h" #include "bu/variant.h" #include "bu/blob.h" namespace Bu { class Stream; /** */ class ArchiveBinary : public Archive { private: bool bLoading; public: bool isLoading(); ArchiveBinary( Stream &rStream, bool bLoading ); virtual ~ArchiveBinary(); virtual void close(); //virtual void write( const void *pData, size_t iSize ); //virtual void read( void *pData, size_t iSize ); virtual void write( bool rData ); virtual void write( unsigned char rData ); virtual void write( char rData ); virtual void write( signed char rData ); virtual void write( unsigned short rData ); virtual void write( signed short rData ); virtual void write( unsigned int rData ); virtual void write( signed int rData ); virtual void write( unsigned long rData ); virtual void write( signed long rData ); virtual void write( unsigned long long rData ); virtual void write( signed long long rData ); virtual void write( float rData ); virtual void write( double rData ); virtual void write( long double rData ); virtual void write( const Bu::Blob &rData ); virtual void write( const Bu::Text &rData ); virtual void read( bool &rData ); virtual void read( unsigned char &rData ); virtual void read( char &rData ); virtual void read( signed char &rData ); virtual void read( unsigned short &rData ); virtual void read( signed short &rData ); virtual void read( unsigned int &rData ); virtual void read( signed int &rData ); virtual void read( unsigned long &rData ); virtual void read( signed long &rData ); virtual void read( unsigned long long &rData ); virtual void read( signed long long &rData ); virtual void read( float &rData ); virtual void read( double &rData ); virtual void read( long double &rData ); virtual void read( Bu::Blob &rData ); virtual void read( Bu::Text &rData ); virtual void setProperty( const Bu::Blob &rKey, const Bu::Variant &rValue ); virtual Bu::Variant getProperty( const Bu::Blob &rKey ) const; private: Stream &rStream; Hash hProps; }; } #endif