Source code
Revision control
Copy as Markdown
Other Tools
// CWrappers.h↩
↩
#ifndef __C_WRAPPERS_H↩
#define __C_WRAPPERS_H↩
↩
#include "../ICoder.h"↩
#include "../../Common/MyCom.h"↩
↩
SRes HRESULT_To_SRes(HRESULT res, SRes defaultRes) throw();↩
HRESULT SResToHRESULT(SRes res) throw();↩
↩
struct CCompressProgressWrap↩
{↩
ICompressProgress vt;↩
ICompressProgressInfo *Progress;↩
HRESULT Res;↩
↩
void Init(ICompressProgressInfo *progress) throw();↩
};↩
↩
↩
struct CSeqInStreamWrap↩
{↩
ISeqInStream vt;↩
ISequentialInStream *Stream;↩
HRESULT Res;↩
UInt64 Processed;↩
↩
void Init(ISequentialInStream *stream) throw();↩
};↩
↩
↩
struct CSeekInStreamWrap↩
{↩
ISeekInStream vt;↩
IInStream *Stream;↩
HRESULT Res;↩
↩
void Init(IInStream *stream) throw();↩
};↩
↩
↩
struct CSeqOutStreamWrap↩
{↩
ISeqOutStream vt;↩
ISequentialOutStream *Stream;↩
HRESULT Res;↩
UInt64 Processed;↩
↩
void Init(ISequentialOutStream *stream) throw();↩
};↩
↩
↩
struct CByteInBufWrap↩
{↩
IByteIn vt;↩
const Byte *Cur;↩
const Byte *Lim;↩
Byte *Buf;↩
UInt32 Size;↩
ISequentialInStream *Stream;↩
UInt64 Processed;↩
bool Extra;↩
HRESULT Res;↩
↩
CByteInBufWrap();↩
~CByteInBufWrap() { Free(); }↩
void Free() throw();↩
bool Alloc(UInt32 size) throw();↩
void Init()↩
{↩
Lim = Cur = Buf;↩
Processed = 0;↩
Extra = false;↩
Res = S_OK;↩
}↩
UInt64 GetProcessed() const { return Processed + (Cur - Buf); }↩
Byte ReadByteFromNewBlock() throw();↩
Byte ReadByte()↩
{↩
if (Cur != Lim)↩
return *Cur++;↩
return ReadByteFromNewBlock();↩
}↩
};↩
↩
↩
struct CByteOutBufWrap↩
{↩
IByteOut vt;↩
Byte *Cur;↩
const Byte *Lim;↩
Byte *Buf;↩
size_t Size;↩
ISequentialOutStream *Stream;↩
UInt64 Processed;↩
HRESULT Res;↩
↩
CByteOutBufWrap() throw();↩
~CByteOutBufWrap() { Free(); }↩
void Free() throw();↩
bool Alloc(size_t size) throw();↩
void Init()↩
{↩
Cur = Buf;↩
Lim = Buf + Size;↩
Processed = 0;↩
Res = S_OK;↩
}↩
UInt64 GetProcessed() const { return Processed + (Cur - Buf); }↩
HRESULT Flush() throw();↩
void WriteByte(Byte b)↩
{↩
*Cur++ = b;↩
if (Cur == Lim)↩
Flush();↩
}↩
};↩
↩
#endif↩