| OLD | NEW |
| (Empty) |
| 1 // BranchCoder.h | |
| 2 | |
| 3 #ifndef __COMPRESS_BRANCH_CODER_H | |
| 4 #define __COMPRESS_BRANCH_CODER_H | |
| 5 | |
| 6 #include "../../Common/MyCom.h" | |
| 7 | |
| 8 #include "../ICoder.h" | |
| 9 | |
| 10 class CBranchConverter: | |
| 11 public ICompressFilter, | |
| 12 public CMyUnknownImp | |
| 13 { | |
| 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 }; | |
| 23 | |
| 24 #define MyClassEncoderA(Name) class C ## Name: public CBranchConverter \ | |
| 25 { public: UInt32 SubFilter(Byte *data, UInt32 size); }; | |
| 26 | |
| 27 #define MyClassDecoderA(Name) class C ## Name: public CBranchConverter \ | |
| 28 { public: UInt32 SubFilter(Byte *data, UInt32 size); }; | |
| 29 | |
| 30 #define MyClassEncoderB(Name, ADD_ITEMS, ADD_INIT) class C ## Name: public CBran
chConverter, public ADD_ITEMS \ | |
| 31 { public: UInt32 SubFilter(Byte *data, UInt32 size); ADD_INIT}; | |
| 32 | |
| 33 #define MyClassDecoderB(Name, ADD_ITEMS, ADD_INIT) class C ## Name: public CBran
chConverter, public ADD_ITEMS \ | |
| 34 { public: UInt32 SubFilter(Byte *data, UInt32 size); ADD_INIT}; | |
| 35 | |
| 36 #define MyClassA(Name, id, subId) \ | |
| 37 MyClassEncoderA(Name ## _Encoder) \ | |
| 38 MyClassDecoderA(Name ## _Decoder) | |
| 39 | |
| 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) | |
| 43 | |
| 44 #endif | |
| OLD | NEW |