From a683a420a9e43705c972b5e74d55e319729e1a81 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Thu, 29 Jul 2010 19:53:02 +0000 Subject: SWORD25: Importing original sources svn-id: r53171 --- engines/sword25/kernel/outputpersistenceblock.h | 60 +++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100755 engines/sword25/kernel/outputpersistenceblock.h (limited to 'engines/sword25/kernel/outputpersistenceblock.h') diff --git a/engines/sword25/kernel/outputpersistenceblock.h b/engines/sword25/kernel/outputpersistenceblock.h new file mode 100755 index 0000000000..1f730769b8 --- /dev/null +++ b/engines/sword25/kernel/outputpersistenceblock.h @@ -0,0 +1,60 @@ +// ----------------------------------------------------------------------------- +// This file is part of Broken Sword 2.5 +// Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdörfer +// +// Broken Sword 2.5 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 2 of the License, or +// (at your option) any later version. +// +// Broken Sword 2.5 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 Broken Sword 2.5; if not, write to the Free Software +// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +// ----------------------------------------------------------------------------- + +#ifndef BS_OUTPUTPERSISTENCEBLOCK_H +#define BS_OUTPUTPERSISTENCEBLOCK_H + +// ----------------------------------------------------------------------------- +// Includes +// ----------------------------------------------------------------------------- + +#include "kernel/common.h" +#include "kernel/persistenceblock.h" +#include "kernel/memlog_off.h" +#include +#include "kernel/memlog_on.h" + + +// ----------------------------------------------------------------------------- +// Class declaration +// ----------------------------------------------------------------------------- + +class BS_OutputPersistenceBlock : public BS_PersistenceBlock +{ +public: + BS_OutputPersistenceBlock(); + + void Write(signed int Value); + void Write(unsigned int Value); + void Write(float Value); + void Write(bool Value); + void Write(const std::string & String); + void Write(const void * BufferPtr, size_t Size); + + const void * GetData() const { return &m_Data[0]; } + unsigned int GetDataSize() const { return m_Data.size(); } + +private: + void WriteMarker(unsigned char Marker); + void RawWrite(const void * DataPtr, size_t Size); + + std::vector m_Data; +}; + +#endif -- cgit v1.2.3