From 14c7f45cdae826f88dc539c8c38dd95caf305731 Mon Sep 17 00:00:00 2001 From: Maurus Cuelenaere Date: Fri, 11 Jul 2008 15:50:46 +0000 Subject: Add zook's ZenUtils to SVN git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18010 a1c6a512-1295-4272-9138-f99709370657 --- .../pelib-0.9/pelib/buffer/InputBuffer.cpp | 58 ++++++++++++++++++++++ .../libraries/pelib-0.9/pelib/buffer/InputBuffer.h | 52 +++++++++++++++++++ .../pelib-0.9/pelib/buffer/OutputBuffer.cpp | 41 +++++++++++++++ .../pelib-0.9/pelib/buffer/OutputBuffer.h | 51 +++++++++++++++++++ 4 files changed, 202 insertions(+) create mode 100755 utils/zenutils/libraries/pelib-0.9/pelib/buffer/InputBuffer.cpp create mode 100755 utils/zenutils/libraries/pelib-0.9/pelib/buffer/InputBuffer.h create mode 100755 utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.cpp create mode 100755 utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.h (limited to 'utils/zenutils/libraries/pelib-0.9/pelib/buffer') diff --git a/utils/zenutils/libraries/pelib-0.9/pelib/buffer/InputBuffer.cpp b/utils/zenutils/libraries/pelib-0.9/pelib/buffer/InputBuffer.cpp new file mode 100755 index 0000000000..ae2584edb1 --- /dev/null +++ b/utils/zenutils/libraries/pelib-0.9/pelib/buffer/InputBuffer.cpp @@ -0,0 +1,58 @@ +/* +* InputBuffer.cpp - Part of the PeLib library. +* +* Copyright (c) 2004 - 2005 Sebastian Porst (webmaster@the-interweb.com) +* All rights reserved. +* +* This software is licensed under the zlib/libpng License. +* For more details see http://www.opensource.org/licenses/zlib-license.php +* or the license information file (license.htm) in the root directory +* of PeLib. +*/ + +#include "InputBuffer.h" + +namespace PeLib +{ + unsigned long InputBuffer::get() + { + return ulIndex; + } + + InputBuffer::InputBuffer(std::vector& vBuffer) : m_vBuffer(vBuffer), ulIndex(0) + { + } + + const unsigned char* InputBuffer::data() const + { + return &m_vBuffer[0]; + } + + unsigned long InputBuffer::size() + { + return static_cast(m_vBuffer.size()); + } + + void InputBuffer::read(char* lpBuffer, unsigned long ulSize) + { + std::copy(&m_vBuffer[ulIndex], &m_vBuffer[ulIndex + ulSize], lpBuffer); + ulIndex += ulSize; + } + + void InputBuffer::reset() + { + m_vBuffer.clear(); + } + + void InputBuffer::set(unsigned long ulIndex) + { + this->ulIndex = ulIndex; + } + + void InputBuffer::setBuffer(std::vector& vBuffer) + { + m_vBuffer = vBuffer; + ulIndex = 0; + } +} + diff --git a/utils/zenutils/libraries/pelib-0.9/pelib/buffer/InputBuffer.h b/utils/zenutils/libraries/pelib-0.9/pelib/buffer/InputBuffer.h new file mode 100755 index 0000000000..fc5a14e357 --- /dev/null +++ b/utils/zenutils/libraries/pelib-0.9/pelib/buffer/InputBuffer.h @@ -0,0 +1,52 @@ +/* +* InputBuffer.h - Part of the PeLib library. +* +* Copyright (c) 2004 - 2005 Sebastian Porst (webmaster@the-interweb.com) +* All rights reserved. +* +* This software is licensed under the zlib/libpng License. +* For more details see http://www.opensource.org/licenses/zlib-license.php +* or the license information file (license.htm) in the root directory +* of PeLib. +*/ + +#ifndef INPUTBUFFER_H +#define INPUTBUFFER_H + +#include +#include +#include + +namespace PeLib +{ + class InputBuffer + { + private: + std::vector& m_vBuffer; + unsigned long ulIndex; + + public: + InputBuffer(std::vector& vBuffer); + + const unsigned char* data() const; + unsigned long size(); + + template + InputBuffer& operator>>(T& value) + { + assert(ulIndex + sizeof(value) <= m_vBuffer.size()); + value = *(T*)(&m_vBuffer[ulIndex]);//reinterpret_cast(&m_vBuffer[ulIndex]); + ulIndex += sizeof(T); + return *this; + } + + void read(char* lpBuffer, unsigned long ulSize); + void reset(); + void set(unsigned long ulIndex); + unsigned long get(); + void setBuffer(std::vector& vBuffer); +// void updateData(unsigned long ulIndex, + }; +} + +#endif diff --git a/utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.cpp b/utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.cpp new file mode 100755 index 0000000000..b47fbb6ff8 --- /dev/null +++ b/utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.cpp @@ -0,0 +1,41 @@ +/* +* OutputBuffer.cpp - Part of the PeLib library. +* +* Copyright (c) 2004 - 2005 Sebastian Porst (webmaster@the-interweb.com) +* All rights reserved. +* +* This software is licensed under the zlib/libpng License. +* For more details see http://www.opensource.org/licenses/zlib-license.php +* or the license information file (license.htm) in the root directory +* of PeLib. +*/ + +#include "OutputBuffer.h" + +namespace PeLib +{ + OutputBuffer::OutputBuffer(std::vector& vBuffer) : m_vBuffer(vBuffer) + { + m_vBuffer.clear(); + } + + const unsigned char* OutputBuffer::data() const + { + return &m_vBuffer[0]; + } + + unsigned long OutputBuffer::size() + { + return static_cast(m_vBuffer.size()); + } + + void OutputBuffer::add(const char* lpBuffer, unsigned long ulSize) + { + std::copy(lpBuffer, lpBuffer + ulSize, std::back_inserter(m_vBuffer)); + } + + void OutputBuffer::reset() + { + m_vBuffer.clear(); + } +} diff --git a/utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.h b/utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.h new file mode 100755 index 0000000000..f1ab99039b --- /dev/null +++ b/utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.h @@ -0,0 +1,51 @@ +/* +* OutputBuffer.h - Part of the PeLib library. +* +* Copyright (c) 2004 - 2005 Sebastian Porst (webmaster@the-interweb.com) +* All rights reserved. +* +* This software is licensed under the zlib/libpng License. +* For more details see http://www.opensource.org/licenses/zlib-license.php +* or the license information file (license.htm) in the root directory +* of PeLib. +*/ + +#ifndef OUTPUTBUFFER_H +#define OUTPUTBUFFER_H + +#include +#include + +namespace PeLib +{ + class OutputBuffer + { + private: + std::vector& m_vBuffer; + + public: + OutputBuffer(std::vector& vBuffer); + const unsigned char* data() const; + unsigned long size(); + + template + OutputBuffer& operator<<(const T& value) + { + const unsigned char* p = reinterpret_cast(&value); + std::copy(p, p + sizeof(value), std::back_inserter(m_vBuffer)); + return *this; + } + void add(const char* lpBuffer, unsigned long ulSize); + void reset(); + void resize(unsigned int uiSize); + void set(unsigned int uiPosition); + + template + void update(unsigned long ulIndex, const T& value) + { + *(T*)(&m_vBuffer[ulIndex]) = value; + } + }; +} + +#endif -- cgit v1.2.3