diff options
Diffstat (limited to 'utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.h')
-rw-r--r--[-rwxr-xr-x] | utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.h | 102 |
1 files changed, 51 insertions, 51 deletions
diff --git a/utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.h b/utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.h index f1ab99039b..06049ddd9d 100755..100644 --- a/utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.h +++ b/utils/zenutils/libraries/pelib-0.9/pelib/buffer/OutputBuffer.h | |||
@@ -1,51 +1,51 @@ | |||
1 | /* | 1 | /* |
2 | * OutputBuffer.h - Part of the PeLib library. | 2 | * OutputBuffer.h - Part of the PeLib library. |
3 | * | 3 | * |
4 | * Copyright (c) 2004 - 2005 Sebastian Porst (webmaster@the-interweb.com) | 4 | * Copyright (c) 2004 - 2005 Sebastian Porst (webmaster@the-interweb.com) |
5 | * All rights reserved. | 5 | * All rights reserved. |
6 | * | 6 | * |
7 | * This software is licensed under the zlib/libpng License. | 7 | * This software is licensed under the zlib/libpng License. |
8 | * For more details see http://www.opensource.org/licenses/zlib-license.php | 8 | * For more details see http://www.opensource.org/licenses/zlib-license.php |
9 | * or the license information file (license.htm) in the root directory | 9 | * or the license information file (license.htm) in the root directory |
10 | * of PeLib. | 10 | * of PeLib. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #ifndef OUTPUTBUFFER_H | 13 | #ifndef OUTPUTBUFFER_H |
14 | #define OUTPUTBUFFER_H | 14 | #define OUTPUTBUFFER_H |
15 | 15 | ||
16 | #include <vector> | 16 | #include <vector> |
17 | #include <iterator> | 17 | #include <iterator> |
18 | 18 | ||
19 | namespace PeLib | 19 | namespace PeLib |
20 | { | 20 | { |
21 | class OutputBuffer | 21 | class OutputBuffer |
22 | { | 22 | { |
23 | private: | 23 | private: |
24 | std::vector<unsigned char>& m_vBuffer; | 24 | std::vector<unsigned char>& m_vBuffer; |
25 | 25 | ||
26 | public: | 26 | public: |
27 | OutputBuffer(std::vector<unsigned char>& vBuffer); | 27 | OutputBuffer(std::vector<unsigned char>& vBuffer); |
28 | const unsigned char* data() const; | 28 | const unsigned char* data() const; |
29 | unsigned long size(); | 29 | unsigned long size(); |
30 | 30 | ||
31 | template<typename T> | 31 | template<typename T> |
32 | OutputBuffer& operator<<(const T& value) | 32 | OutputBuffer& operator<<(const T& value) |
33 | { | 33 | { |
34 | const unsigned char* p = reinterpret_cast<const unsigned char*>(&value); | 34 | const unsigned char* p = reinterpret_cast<const unsigned char*>(&value); |
35 | std::copy(p, p + sizeof(value), std::back_inserter(m_vBuffer)); | 35 | std::copy(p, p + sizeof(value), std::back_inserter(m_vBuffer)); |
36 | return *this; | 36 | return *this; |
37 | } | 37 | } |
38 | void add(const char* lpBuffer, unsigned long ulSize); | 38 | void add(const char* lpBuffer, unsigned long ulSize); |
39 | void reset(); | 39 | void reset(); |
40 | void resize(unsigned int uiSize); | 40 | void resize(unsigned int uiSize); |
41 | void set(unsigned int uiPosition); | 41 | void set(unsigned int uiPosition); |
42 | 42 | ||
43 | template<typename T> | 43 | template<typename T> |
44 | void update(unsigned long ulIndex, const T& value) | 44 | void update(unsigned long ulIndex, const T& value) |
45 | { | 45 | { |
46 | *(T*)(&m_vBuffer[ulIndex]) = value; | 46 | *(T*)(&m_vBuffer[ulIndex]) = value; |
47 | } | 47 | } |
48 | }; | 48 | }; |
49 | } | 49 | } |
50 | 50 | ||
51 | #endif | 51 | #endif |