diff -r b41d74bacdea -r 6bf57b4f42cd src/bytestream.h --- a/src/bytestream.h Sun Aug 11 13:38:12 2013 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -/* - * ZanDemo: Zandronum demo launcher - * Copyright (C) 2013 Santeri Piippo - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef BYTESTREAM_H -#define BYTESTREAM_H - -#include "types.h" - -class Bytestream { -private: - uint8* m_data; - uint8* m_ptr; - ulong m_size, m_len; - - void doWrite (uint8_t val); - -public: - Bytestream (ulong len = 2048); - Bytestream (const char* data, ulong len); - - void init (const char* data, ulong len); - void rewind (); - void seek (ulong pos); - void clear (); - void merge (const Bytestream& other); - bool tryMerge (const Bytestream& other); - void resize (ulong len); - size_t len () const; - ulong bytesLeft () const; - ulong spaceLeft () const; - void growToFit (ulong bytes); - const uint8* data () const; - - bool readBytes (uint8 numbytes, uint8* val); - bool readByte (uint8& val); - bool readShort (uint16& val); - bool readLong (uint32& val); - bool readString (str& val); - bool readFloat (float& val); - - void writeBytes (uint8 numbytes, const uint8* val); - void writeByte (uint8 val); - void writeShort (uint16 val); - void writeLong (uint32 val); - void writeFloat (float val); - void writeString (str val); - - Bytestream& operator<< (const Bytestream& other) { - merge (other); - return *this; - } - - uint8& subscript (ulong idx); - const uint8& const_subscript (ulong idx) const; - - uint8& operator[] (ulong idx) { - return subscript (idx); - } - - const uint8& operator[] (ulong idx) const { - return const_subscript (idx); - } -}; - -#endif // BYTESTREAM_H \ No newline at end of file