src/bytestream.h

changeset 18
6bf57b4f42cd
parent 17
b41d74bacdea
child 19
c9b6dd9dd4cd
--- 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 <http://www.gnu.org/licenses/>.
- */
-
-#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

mercurial