diff options
author | root <root@lamia.panaceas.james.local> | 2015-12-19 14:18:43 +0000 |
---|---|---|
committer | root <root@lamia.panaceas.james.local> | 2015-12-19 14:18:43 +0000 |
commit | 71478fd62d8483483abb34609cdabb7f9cbadfd6 (patch) | |
tree | 37b8eaba1ffe2d5f775227911eb0ed6fdc3c9553 /hostTools/lzma/compress/OutByte.h | |
parent | 1a2238d1bddc823df06f67312d96ccf9de2893cc (diff) | |
download | bootloader-71478fd62d8483483abb34609cdabb7f9cbadfd6.tar.gz bootloader-71478fd62d8483483abb34609cdabb7f9cbadfd6.tar.bz2 bootloader-71478fd62d8483483abb34609cdabb7f9cbadfd6.zip |
Add hostTools from https://github.com/Noltari/cfe_bcm63xx
Diffstat (limited to 'hostTools/lzma/compress/OutByte.h')
-rw-r--r-- | hostTools/lzma/compress/OutByte.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/hostTools/lzma/compress/OutByte.h b/hostTools/lzma/compress/OutByte.h new file mode 100644 index 0000000..dc9ff0a --- /dev/null +++ b/hostTools/lzma/compress/OutByte.h @@ -0,0 +1,42 @@ +#ifndef __STREAM_OUTBYTE_H +#define __STREAM_OUTBYTE_H + +#include "Portable.h" +#include "IInOutStreams.h" + +namespace NStream { + +class COutByte +{ + BYTE *m_Buffer; + UINT32 m_Pos; + UINT32 m_BufferSize; + ISequentialOutStream* m_Stream; + UINT64 m_ProcessedSize; + + void WriteBlock(); +public: + COutByte(UINT32 aBufferSize = (1 << 20)); + ~COutByte(); + + void Init(ISequentialOutStream *aStream); + HRESULT Flush(); + + void WriteByte(BYTE aByte) + { + m_Buffer[m_Pos++] = aByte; + if(m_Pos >= m_BufferSize) + WriteBlock(); + } + void WriteBytes(const void *aBytes, UINT32 aSize) + { + for (UINT32 i = 0; i < aSize; i++) + WriteByte(((const BYTE *)aBytes)[i]); + } + + UINT64 GetProcessedSize() const { return m_ProcessedSize + m_Pos; } +}; + +} + +#endif |