Mercurial > vba-linux
view src/win32/7zip/7z/CPP/7zip/Compress/BranchCoder.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
line wrap: on
line source
1 // BranchCoder.h3 #ifndef __COMPRESS_BRANCH_CODER_H4 #define __COMPRESS_BRANCH_CODER_H6 #include "../../Common/MyCom.h"8 #include "../ICoder.h"10 class CBranchConverter:11 public ICompressFilter,12 public CMyUnknownImp13 {14 protected:15 UInt32 _bufferPos;16 virtual void SubInit() {}17 virtual UInt32 SubFilter(Byte *data, UInt32 size) = 0;18 public:19 MY_UNKNOWN_IMP;20 STDMETHOD(Init)();21 STDMETHOD_(UInt32, Filter)(Byte *data, UInt32 size);22 };24 #define MyClassEncoderA(Name) class C ## Name: public CBranchConverter \25 { public: UInt32 SubFilter(Byte *data, UInt32 size); };27 #define MyClassDecoderA(Name) class C ## Name: public CBranchConverter \28 { public: UInt32 SubFilter(Byte *data, UInt32 size); };30 #define MyClassEncoderB(Name, ADD_ITEMS, ADD_INIT) class C ## Name: public CBranchConverter, public ADD_ITEMS \31 { public: UInt32 SubFilter(Byte *data, UInt32 size); ADD_INIT};33 #define MyClassDecoderB(Name, ADD_ITEMS, ADD_INIT) class C ## Name: public CBranchConverter, public ADD_ITEMS \34 { public: UInt32 SubFilter(Byte *data, UInt32 size); ADD_INIT};36 #define MyClassA(Name, id, subId) \37 MyClassEncoderA(Name ## _Encoder) \38 MyClassDecoderA(Name ## _Decoder)40 #define MyClassB(Name, id, subId, ADD_ITEMS, ADD_INIT) \41 MyClassEncoderB(Name ## _Encoder, ADD_ITEMS, ADD_INIT) \42 MyClassDecoderB(Name ## _Decoder, ADD_ITEMS, ADD_INIT)44 #endif